home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 2
/
Gekikoh Dennoh Club Vol. 2 (Japan).7z
/
Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin
/
fsw
/
zm302
/
zm10.man
< prev
next >
Wrap
Text File
|
1997-09-02
|
114KB
|
2,990 lines
MEASURE10
ZMUSIC Ver.3.0のファンクションコール
ここではZMSC3.XおよびZMC.Xが常駐した後に
使用出来るファンクションコールについて
説明します。使用にはMPU680x0の機械語の知識が
必要です。
一般的な使用をする限り読み飛ばしてしまって
構いません。
10.1. ファンクションコールのコール法
ZMUSIC Ver.3.0のファンクションコールの仕方は以下のような方法で行う。
moveq.l #n,d0 *n=ファンクションナンバー
lea ~,a1 *パラメータが必要であれば設定
moveq.l #m,d1 *パラメータが必要であれば設定
trap #3
戻り値はd0.lとa0.lのみで、その他のレジスタは全部保存される。ただし、逆に
戻り値が無い関数においても、d0.lとa0.lの内容はファンクションコール前と異なる
場合がある(保存されない)点に注意。
ファンクションにもよるが通常はd0.l=0が正常終了を意味する。万が一、ファンク
ション内でエラーが発生した場合のエラーコードは
($8000+エラーの発生したファンクション番号(0-32767))*65536+エラーID(0-65535)
がd0.lに代入される。またこのときはa0.lの内容は0になる。なお、エラーIDと
その説明に関してはMEASURE11を参照のこと。
ZMSC3.Xの常駐チェック方法はリスト1の様に行う。TRAP #3のベクタが指し示す
アドレス-8から文字列"ZmuSiC"があるかどうかを調べている。さらに"ZmuSiC"の
後ろにはバージョンコードが2バイトが格納されている。バージョンコードは
上位バイト上位4ビット:バージョン整数部
上位バイト下位4ビット:バージョン少数第1桁
下位バイト上位4ビット:4
下位バイト下位4ビット:バージョン少数第2桁
例
VERSION 3.21 → "ZmuSiC",$32(.b),$41(.b)
リスト1
chk_drv:
* > eq=常駐確認
* > mi=常駐していない
move.l $8c.w,a0
subq.w #8,a0
cmpi.l #'ZmuS',(a0)+
bne chk_drv_err
cmpi.w #'iC',(a0)+
bne chk_drv_err
cmpi.w #$3000,(a0)+ *バージョンが古い
bcs chk_drv_err
moveq.l #0,d0
rts
chk_drv_err:
moveq.l #-1,d0
rts
10.2. ファンクションコールのコール
●数値表現に付いて
・(.l),(.w),(.b)はそれぞれ32bit,16bit,8bitの値を表す。
・d0.lwはd0の下位16ビット値、d0.hwはd0の上位16ビット値を意味する。
・d0.lbはd0の第0~7ビット値、d0.hbはd0の第8~15ビット値を意味する。
・d0.hwhb,d0.hwlb,d0.lwhb,d0.lwlbはそれぞれd0の最上位8ビット、第16~23ビット、
第8~15ビット、最下位8ビットを表す。
・例で用いているマクロZ_MUSICは
Z_MUSIC macro number
moveq.l number,d0
trap #3
endm
のようになっている。
--------------------------------------------------------------------------------
ファンクション$00 ZM_INIT
機能 ZMUSICの初期化を行う
引数 d1.l:0(dummy)
戻り値 d0.l:ZMUSICのバージョンID
備考 d1.lは将来の拡張を考慮して現時点ではかならず0を設定する。
バージョンIDはたとえばバージョン3.21ならば $00003241となる。
4の部分は固定値。
--------------------------------------------------------------------------------
ファンクション$01 ZM_ASSIGN
機能 チャンネルアサイン
引数 d1.hw:デバイスタイプ(0=FM音源,1=ADPCM音源,$8000=MIDI1,$8001=MIDI2,
$8002=MIDI3,$8003=MIDI4,-1=カレントMIDI)
d1.lw:チャンネル番号0-15
d2.l:トラック番号0-65534
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 カレントMIDIはMIDIインターフェース番号を指定しない場合の
デフォルトとなるものでzm_current_midi_out()で設定する
--------------------------------------------------------------------------------
ファンクション$02 ZM_COMPILER
機能 ZMSをコンパイルする
引数 d1.lのd0-d6:検出するエラーの最大値/0:∞,1-127
d1.lのd15:エラーテーブルリストを作成して出力するか(0:no,1:yes)
d2.l:ZMSサイズ
a1.l:ZMSが格納されているアドレス
戻り値 d0.l=0:正常終了
a0.l=ZMDのアドレス(コンパイル中にウォーニングが発生した場合は
ZMDの後ろにくっつく)
d0.l=0以外:コンパイルで発生したエラーの数
a0.l=エラーテーブル
備考 ・エラーテーブルの構成に付いてはMEASURE11を参照のこと。
・エラーテーブルは使用後ファンクション FREE_MEMなどで解放すること。
・d2.l,a0.l共に0にするとコンパイラの常駐解除となる。通常は指定しては
ならない。正常に解除した場合の戻り値はd0.l=0、失敗時はd0.l=エラー
コードが返される。
・コンパイラは外部組み込みのファンクションであるため、使用前には
コンパイラの常駐を確認する必要がある。
--------------------------------------------------------------------------------
ファンクション$03 ZM_VGET
機能 FM音源音色を取り出す
引数 d1.l:音色番号(0-32767)
d2.l:0=OPMDRV.X互換, 1=AL/FB分離方式
a1.l:音色データ格納バッファ
戻り値 0:正常終了
0以外:エラーコード
備考 a1.lで表される音色データの書式は以下のとおり。
(0~54で表される数値はそれぞれ0(a1)~54(a1)を意味する)
音色フォーマット(OPMDRV.X互換方式)
0:AF(フィードバック/アルゴリズム) (0~63)
1:OM(スロットマスク) (0~15)
2:WF(ウェーヴフォーム) (0~3)
3:SYC(シンクロ) (0,1)
4:SPD(スピード) (0~255)
5:PMD (0~127)
6:AMD (0~127)
7:PMS (0~7)
8:AMS (0~3)
9:PAN (0~3)
10:DUMMY
11(OP1),22(OP2),33(OP3),44(OP4):AR(アタックレート) (0~31)
12(OP1),23(OP2),34(OP3),45(OP4):1DR(1stディケイレート) (0~31)
13(OP1),24(OP2),35(OP3),46(OP4):2DR(2ndディケイレート) (0~31)
14(OP1),25(OP2),36(OP3),47(OP4):RR(リリースレート) (0~15)
15(OP1),26(OP2),37(OP3),48(OP4):1DL(1stディケイレベル) (0~15)
16(OP1),27(OP2),38(OP3),49(OP4):TL(トータルレベル) (0~127)
17(OP1),28(OP2),39(OP3),50(OP4):KS(キースケーリング) (0~3)
18(OP1),29(OP2),40(OP3),51(OP4):MUL(フェーズマルチプライ) (0~15)
19(OP1),30(OP2),41(OP3),52(OP4):DT1(ディチューン1) (0~7)
20(OP1),31(OP2),42(OP3),53(OP4):DT2(ディチューン2) (0~3)
21(OP1),32(OP2),43(OP3),54(OP4):AME(AMSイネーブル) (0,1)
音色フォーマット(AL/FB分離方式)
00(OP1),11(OP2),22(OP3),33(OP4):AR(アタックレート) (0~31)
01(OP1),12(OP2),23(OP3),34(OP4):1DR(1stディケイレート) (0~31)
02(OP1),13(OP2),24(OP3),35(OP4):2DR(2ndディケイレート) (0~31)
03(OP1),14(OP2),25(OP3),36(OP4):RR(リリースレート) (0~15)
04(OP1),15(OP2),26(OP3),37(OP4):1DL(1stディケイレベル) (0~15)
05(OP1),16(OP2),27(OP3),38(OP4):TL(トータルレベル) (0~127)
06(OP1),17(OP2),28(OP3),39(OP4):KS(キースケーリング) (0~3)
07(OP1),18(OP2),29(OP3),40(OP4):MUL(フェーズマルチプライ) (0~15)
08(OP1),19(OP2),30(OP3),41(OP4):DT1(ディチューン1) (0~7)
09(OP1),20(OP2),31(OP3),42(OP4):DT2(ディチューン2) (0~3)
10(OP1),21(OP2),32(OP3),43(OP4):AME(AMSイネーブル) (0,1)
44:AL(アルゴリズム) (0~7)
45:FB(フィードバック) (0~7)
46:OM(スロットマスク) (0~15)
47:PAN (0~3)
48:WF(ウェーヴフォーム) (0~3)
49:SYC(シンクロ) (0,1)
50:SPD(スピード) (0~255)
51:PMD (0~127)
52:AMD (0~127)
53:PMS (0~7)
54:AMS (0~3)
--------------------------------------------------------------------------------
ファンクション$04 ZM_VSET
機能 FM音源音色を登録する
引数 d1.l:音色番号(0-32767)
d2.l:モード(0=OPMDRV.X互換,1=AL/FB分離方式)
a1.l:音色データ格納バッファ
戻り値 0:正常終了
0以外:エラーコード
備考 音色フォーマットに付いてはZM_VGETとまったく同じ
--------------------------------------------------------------------------------
ファンクション$06 ZM_TEMPO
機能 テンポを設定する
引数 d1.lw:テンポの値(1分間の4分音符の数)
-1=テンポ取得のみを行う
d1.hw:モード(0=ZMUSICに登録する(通常),
-1=単なるテンポの変更でZMUSICには登録しない)
戻り値 設定前のテンポとタイマ値が戻ってくる
d0.hw:タイマ値
d0.lw:テンポ値
備考 テンポ値の有効範囲は使用するテンポ源タイマの種類によって異なる。
TIMER-A:20~32767
TIMER-B:20~5000
YM3802:1~32767
--------------------------------------------------------------------------------
ファンクション$07 ZM_SET_TIMER_VALUE
機能 テンポをタイマ値で設定する
引数 d1.lw:タイマの値
-1=タイマ値取得のみを行う
d1.hw:モード(0=ZMUSICに登録する(通常),
-1=単なるテンポの変更でZMUSICには登録しない)
戻り値 設定前のテンポとタイマ値が戻ってくる
d0.hw:テンポ値
d0.lw:タイマ値
備考 テンポ値の有効範囲は使用するテンポ源タイマの種類によって異なる。
TIMER-A:0~1023
TIMER-B:0~255
YM3802:0~8191
--------------------------------------------------------------------------------
ファンクション$08 ZM_PLAY
機能 演奏開始制御
引数 a1.l:演奏を開始したいトラック番号の並びを格納したアドレス
ただしa1.l=0とすると全トラック演奏開始の指定とみなす。
戻り値 a0.l:演奏開始を行えなかったトラック番号の並びを格納したアドレス
備考 引数a1.l、戻り値a0.l共に
{ track(.w),track(.w),.....,track(.w),-1(.w)}
という構成を取る。ただしトラック番号は0-65534の範囲
--------------------------------------------------------------------------------
ファンクション$09 ZM_PLAY2
機能 共通コマンドからの再演奏を行う
引数 なし
戻り値 なし
備考 現在ZMUSICの演奏データバッファに存在する演奏データをはじめから
(共通コマンドの実行も含めて)演奏する。
--------------------------------------------------------------------------------
ファンクション$0a ZM_PLAY_AGAIN
機能 再演奏
引数 なし
戻り値 なし
備考 前回行われたファンクションZM_PLAYを再び実行する
--------------------------------------------------------------------------------
ファンクション$0b ZM_PLAY_STATUS
機能 演奏状態の検査
引数 d1.l:チェックモード(0:全チャンネル検査,1:全トラック検査
2:指定チャンネル検査,3:指定トラック検査)
d2.hw:デバイスタイプ(0=FM音源,1=ADPCM音源,$8000=MIDI1,$8001=MIDI2,
$8002=MIDI3,$8003=MIDI4,-1=カレントMIDI)
/d1.l=2の時のみ有効
d2.lw:チャンネル番号(0-15) /d1.l=2の時のみ有効
d2.l:トラック番号(0-65534) /d1.l=3の時のみ有効
a1.l:検査結果格納バッファアドレス
(0にすると検査結果を簡略して返す) /d1.l=0,2の時のみ有効
戻り値 引数a1.l=0のとき、あるいはd1.l=2,3のときのみd0.lに以下の値を返す
d0.l=0:演奏終了
d0.l=-1:演奏中
備考 ・引数d1.l=0(全チャンネル検査モード)のとき戻り値は引数a1.lから示される
領域に演奏中のデバイスタイプ,チャンネルが以下のような書式で返される。
{ active_device(.l),active_device(.l),...,-1(.l) }
なお、
active_device(.l)は
active_device(.hw):デバイスタイプ(0=FM音源,1=ADPCM音源,
$8000=MIDI1,$8001=MIDI2,
$8002=MIDI3,$8003=MIDI4,-1=カレントMIDI)
active_device(.lw):チャンネル番号(0-15)
という書式に準ずる。
・引数d1.l=1(全トラック検査モード)のとき戻り値は引数a1.lから示される
領域に演奏中のトラック番号が以下のような書式で返される。
{ active_track(.w),active_track(.w),...,-1(.w) }
なお、
active_track(.w)は0-65534の値を取る
・引数d1.l=2,3のときはd2.lで指定したチャンネルやトラック番号の演奏状態を
検査する。この時a1.lを指定する必要はない。検査結果はd0.lに返される。
--------------------------------------------------------------------------------
ファンクション$0c ZM_STOP
機能 演奏停止
引数 a1.l:演奏を停止したいトラック番号の並びを格納したアドレス
ただしa1.l=0とすると全トラック演奏停止の指定とみなす。
戻り値 a0.l:演奏停止を行えなかったトラック番号の並びを格納したアドレス
備考 引数のa1.l、戻り値のa0.l共に
{ track(.w),track(.w),.....,track(.w),-1(.w) }
という構成を取る。ただしトラック番号は0-65534の範囲
--------------------------------------------------------------------------------
ファンクション$0d ZM_CONT
機能 演奏再開
引数 a1.l:演奏を再開したいトラック番号の並びを格納したアドレス
ただしa1.l=0とすると全トラック演奏再開の指定とみなす。
戻り値 a0.l:演奏再開を行えなかったトラック番号の並びを格納したアドレス
備考 引数のa1.l、戻り値のa0.l共に
{ track(.w),track(.w),.....,track(.w),-1(.w)}
という構成を取る。ただしトラック番号は0-65534の範囲
--------------------------------------------------------------------------------
ファンクション$0e ZM_ATOI
機能 演奏トラックデータの先頭アドレス取得
引数 d1.l:トラック番号(0-65534)
戻り値 a0.l=0:エラー(指定トラックは存在せず)
a0.l=0以外:指定演奏トラックの先頭アドレス
--------------------------------------------------------------------------------
ファンクション$0f ZM_SET_MASTER_CLOCK
機能 拍子,メトロノーム速度,調号,全音符の絶対音長の設定
引数 d1.l:モード(0=音楽演奏側の設定を行う,1=効果音演奏側の設定を行う)
a1.l:拍子,メトロノーム速度,調号,全音符の絶対音長を格納した領域の
アドレス。a1.l=0ならば問い合わせのみ
戻り値 引数のa1.l=0とした時のみ、その時点の設定値を格納した領域のアドレスが
a0.lに返る。それ以外は戻り値不定。
備考 d1.l=0で通常音楽演奏側の設定、d1.l=1で効果音演奏側の設定となる。
引数のa1.l、戻り値のa0.lの構造は
$00(a1).b:拍子分子(1-255)
$01(a1).b:拍子分母(1-255)
$02(a1).b:メトロノーム速度(楽的音長(1-255))
$03(a1).b:reserve
$04(a1).b:調号1(0:C,負値:♭の数,正値:♯の数)
$05(a1).b:調号2(Major=0,Minor=1)
$06(a1).w:全音符の絶対音長(1-65535)
という書式に準ずる
--------------------------------------------------------------------------------
ファンクション$10 ZM_PLAY_ZMD
機能 ZMDの演奏
引数 d2.l:ZMDのサイズ(ヘッダ「$1A,'ZmuSiC',$30」の分は含まれていても
含まれていなくてもどちらでもよい)
d2.l=0を設定するとZMUSIC本体のバッファへ演奏データを
取り込む動作を省略する。
a1.l:ZMDの格納アドレス(ヘッダ「$1A,'ZmuSiC',$30」を含まず)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 d2.l=0とするには、a1.lで表されるアドレスからの領域の存在が
演奏中も保証されることを前提とする。
--------------------------------------------------------------------------------
ファンクション$11 ZM_PLAY_ZMD_SE
機能 ZMDを効果音として演奏する
引数 a1.l:ZMDの格納アドレス(ヘッダ「$1A,'ZmuSiC',$30」を含まず)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表されるアドレスからの領域の存在は、演奏中も
保証されなければならない。
--------------------------------------------------------------------------------
ファンクション$12 ZM_SE_PLAY
機能 効果音ZMDの演奏
引数 a1.l:ZMDの格納アドレス(トラック・チャンネル情報テーブルから)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表されるアドレスからの領域の存在は、演奏中も
保証されなければならない。
トラック・チャンネル情報テーブルに付いてはMEASURE12を参照。
--------------------------------------------------------------------------------
ファンクション$13 ZM_SE_ADPCM1
機能 (AD)PCM効果音の演奏
引数 d1.hwhb:データタイプ(-1:ADPCM,1:16bitPCM,2:8bitPCM)
d1.hwlb:音量(0-127,64:標準)
d1.lwhb:再生周波数(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
d1.lwlb:パンポット(0-3 / $80+0-127)
d2.l:再生するADPCMのデータサイズ
d4.hw:効果音優先度(0-255/0が最も低い)
d4.lw:再生チャンネル(0-15)
a1.l:(AD)PCMデータアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表されるアドレスからの領域の存在は、演奏中も
保証されなければならない。
--------------------------------------------------------------------------------
ファンクション$14 ZM_SE_ADPCM2
機能 ZMUSICに登録してある(AD)PCM効果音の演奏
引数 d1.hwhb:データタイプ(-1:ADPCM,1:16bitPCM,2:8bitPCM)
d1.hwlb:音量(0-127,64:標準)
d1.lwhb:再生周波数(0:3.9kHz 1:5.2kHz 2:7.8kHz 3:10.4kHz 4:15.6kHz)
d1.lwlb:パンポット(0-3 / $80+0-127)
d2.l:PCMデータ番号(d15が1ならば音色番号($8000+0-32767),
0ならばノート番号(0-32767)指定)
d4.hw:効果音優先度(0-255/0が最も低い)
d4.lw:再生チャンネル(0-15)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$15 ZM_INTERCEPT_PLAY
機能 演奏開始制御の遮断制御
引数 d1.l:-1 演奏開始の遮断を行う
0 演奏開始の遮断の解除と演奏開始
1 演奏開始の遮断の解除
戻り値 なし
備考 演奏開始の遮断を設定するとファンクションZM_PLAYなどの演奏開始命令を
実行しても演奏が開始されなくなる。
演奏開始の遮断中に演奏開始を実行した場合ワークtimer_flgの
最上位ビットが1に上書きされる。
--------------------------------------------------------------------------------
ファンクション$16 ZM_CURRENT_MIDI_IN
機能 カレントMIDI-IN端子の設定
引数 d1.w:MIDIポートの番号(0-3)
-1では問い合わせのみを行う
戻り値 d0.l=以前のカレントMIDI-INのポート番号(0-3)
--------------------------------------------------------------------------------
ファンクション$17 ZM_CURRENT_MIDI_OUT
機能 カレントMIDI-OUT端子の設定
引数 d1.w:MIDIポートの番号(0-3)
-1では問い合わせのみを行う
戻り値 d0.l=以前のカレントMIDI-OUTのポート番号(0-3)
--------------------------------------------------------------------------------
ファンクション$18 ZM_MIDI_TRANSMISSION
機能 MIDIデータメッセージの送信
引数 d1.l:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:送信データサイズ
0とした場合はテキスト型MIDIデータ(MDD)とみなして送信する
0以外ではバイナリデータとみなして送信する
a1.l:送信するMIDIデータを格納したデータバッファアドレス
戻り値 d0.l=送信データの8ビット加算合計値
備考 MDDとはZMUSIC Ver.2.0相当でMIDIファイルの標準としていたフォーマット。
$0d,$0aで始まり16進数のテキストでMIDIメッセージを記述したファイル。
送信データサイズを指定した場合はバイナリのMIDIメッセージと
みなして送信される。ZMUSICが扱えるバイナリのMIDIメッセージには
スタンダードMIDIファイル(FORMAT0)と単なるバイナリデータ列の
2種類がありこのデータの種類の判別はZMUSIC Ver.3.0が自動で行う。
--------------------------------------------------------------------------------
ファンクション$19 ZM_EXCLUSIVE
機能 エクスクルーシブメッセージの送信
引数 d1.l:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:送信データサイズ
d3.hw:MAKER ID(0-127)
d3.lb:MODEL ID(0-127)
d3.hb:DEVICE ID(0-127)
a1.l:送信するMIDIデータを格納したデータバッファアドレス
戻り値 なし
備考 エクスクルーシブヘッダの$F0とEOXの$F7は自動送信される。
d3.hb=-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はドライバ内のデフォルト値が選択される。
MAKER IDをRoland($41)とした場合はデータ列をローランド・エクスクルーシブ
フォーマットのデータとみなし、コマンドメッセージ(DT2:$12)やチェックサム
バイト付きで送信する。
MAKER IDをYAMAHA($43)とした場合はデータ列をヤマハ・エクスクルーシブ
フォーマットのデータとみなし、データ長やチェックサムバイト付きで送信す
る。
--------------------------------------------------------------------------------
ファンクション$1b ZM_SET_EOX_WAIT
機能 EOX送信後のウェイトを設定する
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.w:0-65535
戻り値 d0.l=それまでのウェイト値
--------------------------------------------------------------------------------
ファンクション$1c ZM_MIDI_INP1
機能 MIDIデータの1バイト入力
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:入力モード(0:1回受信を試みてすぐ帰還,1:受信するまで無限ループ)
戻り値 d0.lに入力結果を返す
備考 戻り値のd0.lは以下のような書式をとる
第31ビット:読み込みステータス(1=読みこぼし発生,0=正常読みだし)
第15ビット:データの有無(1=データ無し,0=データ有り)
第0-7ビット:読みだしデータ(0-255)
--------------------------------------------------------------------------------
ファンクション$1d ZM_MIDI_OUT1
機能 MIDIデータの1バイト出力
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.b:送信データ(0-255)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$1e ZM_MIDI_REC
機能 MIDIデータのレコーディング開始
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$1f ZM_MIDI_REC_END
機能 MIDIデータのレコーディング終了
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$20 ZM_GS_RESET
機能 GS音源の初期化
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.b:DEVICE ID(0-127,-1:以前の値を使用)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$21 ZM_GS_PARTIAL_RESERVE
機能 GS音源のパーシャルリザーブ
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.b:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:パート1~パート16までのパーシャルリザーブ値が
格納されているアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパーシャルリザーブ値を16パート分格納しておく。
また、合計が楽器の最大同時発声数以下にならなければならない。
0(a1)=パート1,1(a1)=パート2…,15(a1)=パート16というふうに対応する。
なお、パート10はリズムパートに対応する。
d3.bを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$22 ZM_GS_REVERB
機能 GS音源のリバーブ・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:リバーブパラメータ・データサイズ(1-7)
d3.b:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:リバーブパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にリバーブパラメータを記述しておく。d2.lは7以内で、
指定した個数分のパラメータがGS音源へ送信される。
d3.bを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される
0(a1):REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
1(a1):REVERB CHARACTER ($00~$07)
2(a1):REVERB PRE-LPF ($00~$07)
3(a1):REVERB LEVEL ($00~$7F)
4(a1):REVERB TIME ($00~$7F)
5(a1):REVERB DELAY FEEDBACK ($00~$7F)
6(a1):REVERB SEND LEVEL TO CHORUS ($00~$7F)
(SC55マニュアルp79参照)
--------------------------------------------------------------------------------
ファンクション$23 ZM_GS_CHORUS
機能 GS音源のコーラス・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:コーラスパラメータ・データサイズ(1-8)
d3.b:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:コーラスパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にコーラスパラメータを記述しておく。d2.lは8以内で
指定した個数分のパラメータがGS音源へ送信される。
d3.bを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
1(a1):CHORUS PRE-LPF ($00~$07)
2(a1):CHORUS LEVEL ($00~$7F)
3(a1):CHORUS FEEDBACK ($00~$7F)
4(a1):CHORUS DELAY ($00~$7F)
5(a1):CHORUS RATE ($00~$7F)
6(a1):CHORUS DEPTH ($00~$7F)
7(a1):CHORUS SEND LEVEL TO REVERB ($00~$7F)
(SC55マニュアルp79参照)
--------------------------------------------------------------------------------
ファンクション$24 ZM_GS_PART_PARAMETER
機能 GS音源のパート・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:パートパラメータ・データサイズ(1-119)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:PART NUMBER(1-16)
a1.l:パートパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパートパラメータを記述しておく。d2.lは119以内で
指定した個数分のパラメータがGS音源へ送信される。
d3.bを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Rx CHANNEL (1~16,17=OFF)
1(a1):Rx PITCH BEND (0~1:OFF/ON)
2(a1):Rx CH PRESSURE(CAf) (0~1:OFF/ON)
3(a1):Rx PROGRAM CHANGE (0~1:OFF/ON)
4(a1):Rx CONTROL CHANGE (0~1:OFF/ON)
5(a1):Rx POLY PRESSURE(PAf) (0~1:OFF/ON)
6(a1):Rx NOTE MESSAGE (0~1:OFF/ON)
7(a1):Rx RPN (0~1:OFF/ON)
8(a1):Rx NRPN (0~1:OFF/ON)
9(a1):Rx MODURATION (0~1:OFF/ON)
10(a1):Rx VOLUME (0~1:OFF/ON)
11(a1):Rx PANPOT (0~1:OFF/ON)
12(a1):Rx EXPRESSION (0~1:OFF/ON)
13(a1):Rx HOLD1 (0~1:OFF/ON)
14(a1):Rx PORTAMENTO (0~1:OFF/ON)
15(a1):Rx SOSTENUTO (0~1:OFF/ON)
16(a1):Rx SOFT (0~1:OFF/ON)
17(a1):MONO/POLY MODE (0~1:MONO/POLY)
18(a1):ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
19(a1):USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
20(a1):PITCH KEY SHIFT ($28~$58:-24~+24[semitone])
21(a1):PITCH OFFSET FINE(upper) ($08~$F8:-12.0~+12.0[Hz])
22(a1):PITCH OFFSET FINE(lower) 〃
23(a1):PART LEVEL (0~127)
24(a1):VELOCITY SENSE DEPTH (0~127)
25(a1):VELOCITY SENSE OFFSET (0~127)
26(a1):PART PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
27(a1):KEY RANGE LOW (0~127:C-1~G9)
28(a1):KEY RANGE HIGH (0~127:C-1~G9)
29(a1):CC1 CONTROL NUMBER (0~127)
30(a1):CC2 CONTROL NUMBER (0~127)
31(a1):CHORUS SEND DEPTH (0~127)
32(a1):REVERB SEND DEPTH (0~127)
33(a1):Vibrato rate ($0E~$72:-50~+50)
34(a1):Vibrato depth ($0E~$72:-50~+50)
35(a1):TVF cutoff freq. ($0E~$50:-50~+16)
36(a1):TVF resonance ($0E~$72:-50~+50)
37(a1):TVF&TVA Env.attack ($0E~$72:-50~+50)
38(a1):TVF&TVA Env.decay ($0E~$72:-50~+50)
39(a1):TVF&TVA Env.release ($0E~$72:-50~+50)
40(a1):Vibrato delay ($0E~$72:-50~+50)
41(a1):SCALE TUNING C ($00~$7F:-64~+63[cent])
42(a1):SCALE TUNING C# ($00~$7F:-64~+63[cent])
43(a1):SCALE TUNING D ($00~$7F:-64~+63[cent])
44(a1):SCALE TUNING D# ($00~$7F:-64~+63[cent])
45(a1):SCALE TUNING E ($00~$7F:-64~+63[cent])
46(a1):SCALE TUNING F ($00~$7F:-64~+63[cent])
47(a1):SCALE TUNING F# ($00~$7F:-64~+63[cent])
48(a1):SCALE TUNING G ($00~$7F:-64~+63[cent])
49(a1):SCALE TUNING G# ($00~$7F:-64~+63[cent])
50(a1):SCALE TUNING A ($00~$7F:-64~+63[cent])
51(a1):SCALE TUNING A# ($00~$7F:-64~+63[cent])
52(a1):SCALE TUNING B ($00~$7F:-64~+63[cent])
53(a1):MOD PITCH CONTROL ($28~$58:-24~+24[semitone])
54(a1):MOD TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
55(a1):MOD AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
56(a1):MOD LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
57(a1):MOD LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
58(a1):MOD LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
59(a1):MOD LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
60(a1):MOD LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
61(a1):MOD LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
62(a1):MOD LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
63(a1):MOD LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
64(a1):BEND PITCH CONTROL ($28~$58:-24~+24[semitone])
65(a1):BEND TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
66(a1):BEND AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
67(a1):BEND LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
68(a1):BEND LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
69(a1):BEND LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
70(a1):BEND LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
71(a1):BEND LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
72(a1):BEND LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
73(a1):BEND LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
74(a1):BEND LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
75(a1):CAf PITCH CONTROL ($28~$58:-24~+24[semitone])
76(a1):CAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
77(a1):CAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
78(a1):CAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
79(a1):CAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
80(a1):CAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
81(a1):CAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
82(a1):CAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
83(a1):CAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
84(a1):CAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
85(a1):CAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
86(a1):PAf PITCH CONTROL ($28~$58:-24~+24[semitone])
87(a1):PAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
88(a1):PAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
89(a1):PAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
90(a1):PAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
91(a1):PAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
92(a1):PAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
93(a1):PAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
94(a1):PAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
95(a1):PAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
96(a1):PAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
97(a1):CC1 PITCH CONTROL ($28~$58:-24~+24[semitone])
98(a1):CC1 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
99(a1):CC1 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
100(a1):CC1 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
101(a1):CC1 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
102(a1):CC1 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
103(a1):CC1 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
104(a1):CC1 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
105(a1):CC1 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
106(a1):CC1 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
107(a1):CC1 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
108(a1):CC2 PITCH CONTROL ($28~$58:-24~+24[semitone])
109(a1):CC2 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
110(a1):CC2 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
111(a1):CC2 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
112(a1):CC2 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
113(a1):CC2 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
114(a1):CC2 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
115(a1):CC2 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
116(a1):CC2 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
117(a1):CC2 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
118(a1):CC2 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
(SC55のマニュアルp75,p79~p80参照)
--------------------------------------------------------------------------------
ファンクション$25 ZM_GS_DRUM_PARAMETER(ZM_GS_DRUM_SETUP)
機能 GS音源のドラム・セットアップ設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ドラム・セットアップ・パラメータ・データサイズ(1-8)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hwlb:NOTE NUMBER(0-127)
d2.hwhb:MAP NUMBER(0-1)
a1.l:ドラム・セットアップ・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にドラム・セットアップ・パラメータを記述しておく。
d2.lは8以内で指定した個数分のパラメータがGS音源へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):PLAY KEY NUMBER (0~127)
1(a1):LEVEL (0~127)
2(a1):ASSIGN GROUP NUMBER (0:NON,1~127)
3(a1):PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
4(a1):REVERB DEPTH (0~127:0.0~1.0)
5(a1):CHORUS DEPTH (0~127:0.0~1.0)
6(a1):Rx NOTE OFF (0~1:OFF/ON)
7(a1):Rx NOTE ON (0~1:OFF/ON)
(SC55マニュアルp75,p82参照)
--------------------------------------------------------------------------------
ファンクション$26 ZM_GS_DRUM_NAME
機能 GS音源のドラム・セット名設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ドラム・セットアップ・パラメータ・データサイズ(1-8)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:MAP NUMBER(0,1)
a1.l:ドラム・セット名文字列格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 文字列は12文字以内でa1.lからの領域に文字列を記述しておく。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
(SC55マニュアルp82参照)
--------------------------------------------------------------------------------
ファンクション$27 ZM_GS_PRINT
機能 GS音源の画面へのメッセージ出力
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:メッセージ長(1-32)
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:文字列格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 メッセージは32文字以内でa1.lからの領域に文字列を記述しておく。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$28 ZM_GS_DISPLAY
機能 GS音源の画面へのドットパターン出力
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:ドットパターン格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にドットパターンを記述しておく。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
例
/*SC55の画面に"善"を表示する*/
moveq.l #-1,d1
moveq.l #-1,d3
lea data(pc),a1
Z_MUSIC #ZM_GS_DISPLAY
rts
data:
dc.w %0001000000010000
dc.w %0000100000100000
dc.w %0111111111111100
dc.w %0000000100000000
dc.w %0011111111111000
dc.w %0000000100000000
dc.w %0111111111111100
dc.w %0001000100010000
dc.w %0000100100100000
dc.w %1111111111111110
dc.w %0000000000000000
dc.w %0011111111111000
dc.w %0010000000001000
dc.w %0010000000001000
dc.w %0011111111111000
dc.w %0010000000001000
--------------------------------------------------------------------------------
ファンクション$29 ZM_GM_SYSTEM_ON
機能 GM音源のリセット
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$30 ZM_MT32_RESET
機能 MT32の初期化
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$31 ZM_MT32_PARTIAL_RESERVE
機能 MT32のパーシャルリザーブ
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:パート1~パート9までのパーシャルリザーブ値が
格納されているバッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパーシャルリザーブ値を9パート分格納しておく。
また、合計が楽器の最大同時発声数以下にならなければならない。
0(a1)=パート1,1(a1)=パート2…,8(a1)=パート9というふうに対応する。
なお、8(a1)のパート9はリズムパートに対応する。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$32 ZM_MT32_REVERB
機能 MT32のリバーブパラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:リバーブパラメータ・データサイズ(1-3)
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:リバーブパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にリバーブパラメータを記述しておく。d2.lは3以内で、
指定した個数分のパラメータがMT32へ送信される。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される
0(a1):REVERB MODE (0:Room,1:Hall,2:Plate,3:Tap Delay)
1(a1):REVERB TIME (0~7)
2(a1):REVERB LEVEL (0~7)
(MT32マニュアルp35,CM64マニュアルp30参照)
--------------------------------------------------------------------------------
ファンクション$33 ZM_MT32_PART_SETUP
機能 MT32のパート・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:パートパラメータ・データサイズ(1-9)
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:パートパラメータ格納バッファ
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパートパラメータを記述しておく。
パートパラメータは
0(a1)=パート1のMIDIチャンネル,1(a1)=パート2のMIDIチャンネル…,
8(a1)=リズムパートのMIDIチャンネル
という構成を取る
d2.lは9以内で指定した個数分のパラメータがMT32へ送信される。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$34 ZM_MT32_DRUM
機能 MT32のドラム・セットアップ設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ドラム・セットアップ・パラメータ・データサイズ(1-4)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:NOTE NUMBER(24~87)
a1.l:ドラム・セットアップ・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にドラム・セットアップ・パラメータを記述しておく。
d2.lは4以内で指定した個数分のパラメータがMT32へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):TIMBRE (0~63:i1~64,64~127:r1~64)
1(a1):OUTPUT LEVEL (0~100)
2(a1):PANPOT (0~14)
3(a1):REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
--------------------------------------------------------------------------------
ファンクション$35 ZM_MT32_COMMON
機能 MT32のコモン・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:コモン・パラメータ・データサイズ(1-4)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:PROGRAM NUMBER(1-64)
a1.l:コモン・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にコモン・パラメータを記述しておく。
d2.lは4以内で指定した個数分のパラメータがMT32へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Structure of Partial#1&2 (0~12:1~13)
1(a1):Structure of Partial#3&4 (0~12:1~13)
2(a1):PARTIAL MUTE (0~15)
3(a1):ENV MODE (0~1:NORMAL,NO SUSTAIN)
(MT32マニュアルp34,CM64マニュアルp29参照)
--------------------------------------------------------------------------------
ファンクション$36 ZM_MT32_PARTIAL
機能 MT32のパーシャル・パラメータ設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:パーシャル・パラメータ・データサイズ(1-58)
d3.lw:d0-d15=DEVICE ID(0-127,-1:以前の値を使用)
d3.hwlb:PARTIAL NUMBER(1-4)
d3.hwhb:PROGRAM NUMBER(1-64)
a1.l:パーシャル・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパーシャル・パラメータを記述しておく。
d2.lは58以内で指定した個数分のパラメータがMT32へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):WG PITCH COARSE (0~96:C1,C#1,~,C9)
1(a1):WG PITCH FINE (0~100:-50~+50)
2(a1):WG PITCH KEYFOLLOW (0~16:-1,-1/2,-1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2,s1,s2)
3(a1):WG PITCH BENDER SW (0~1:OFF/ON)
4(a1):WG WAVEFORM/PCM BANK (0~3:SQU1,SAW1,SQU2,SAW2)
5(a1):WG PCM WAVE (0~127:1~128)
6(a1):WG PULSE WIDTH (0~100)
7(a1):WG PW VELO SENS (0~14:-7~+7)
8(a1):P-ENV DEPTH (0~10)
9(a1):P-ENV VELO SENS (0~3)
10(a1):P-ENV TIME KEYF (0~4)
11(a1):P-ENV TIME 1 (0~100)
12(a1):P-ENV TIME 2 (0~100)
13(a1):P-ENV TIME 3 (0~100)
14(a1):P-ENV TIME 4 (0~100)
15(a1):P-ENV LEVEL 0 (0~100:-50~+50)
16(a1):P-ENV LEVEL 1 (0~100:-50~+50))
17(a1):P-ENV LEVEL 2 (0~100:-50~+50)
18(a1):P-ENV SUSTAIN LEVEL (0~100:-50~+50)
19(a1):END LEVEL (0~100:-50~+50)
20(a1):P-LFO RATE (0~100)
21(a1):P-LFO DEPTH (0~100)
22(a1):P-LFO MOD SENS (0~100)
23(a1):TVF CUTOFF FREQ (0~100)
24(a1):TVF RESONANCE (0~30)
25(a1):TVF KEYFOLLOW (0~14:-1,-1/2,-1/4,0,1/8,1/4,
3/8,1/2,5/8,3/4,7/8,1,
5/4,3/2,2)
26(a1):TVF BIAS POINT/DIR (0~127)
27(a1):TVF BIAS LEVEL (0~14:-7~+7)
28(a1):TVF ENV DEPTH (0~100)
29(a1):TVF ENV VELO SENS (0~100)
30(a1):TVF ENV DEPTH KEYF (0~4)
31(a1):TVF ENV TIME KEYF (0~4)
32(a1):TVF ENV TIME 1 (0~100)
33(a1):TVF ENV TIME 2 (0~100)
34(a1):TVF ENV TIME 3 (0~100)
35(a1):TVF ENV TIME 4 (0~100)
36(a1):TVF ENV TIME 5 (0~100)
37(a1):TVF ENV LEVEL 1 (0~100)
38(a1):TVF ENV LEVEL 2 (0~100)
39(a1):TVF ENV LEVEL 3 (0~100)
40(a1):TVF ENV SUSTAIN LEVEL (0~100)
41(a1):TVA LEVEL (0~100)
42(a1):TVA VELO SENS (0~100:-50~+50
43(a1):TVA BIAS POINT 1 (0~127)
44(a1):TVA BIAS LEVEL 1 (0~12:-12~0)
45(a1):TVA BIAS POINT 2 (0~127)
46(a1):TVA BIAS LEVEL 2 (0~12:-12~0)
47(a1):TVA ENV TIME KEYF (0~4)
48(a1):TVA ENV TIME V_FOLLOW (0~4)
49(a1):TVA ENV TIME 1 (0~100)
50(a1):TVA ENV TIME 2 (0~100)
51(a1):TVA ENV TIME 3 (0~100)
52(a1):TVA ENV TIME 4 (0~100)
53(a1):TVA ENV TIME 5 (0~100)
54(a1):TVA ENV LEVEL 1 (0~100)
55(a1):TVA ENV LEVEL 2 (0~100)
56(a1):TVA ENV LEVEL 3 (0~100)
57(a1):TVA ENV SUSTAIN LEVEL (0~100)
(MT32マニュアルp34,CM64マニュアルp29参照)
--------------------------------------------------------------------------------
ファンクション$37 ZM_MT32_PATCH
機能 MT32のパッチ・パラメータ設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:パッチ・パラメータ・データサイズ(1-7)
d3.lw:d0-d15=DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:PATCH NUMBER(1-128)
a1.l:パッチ・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパッチ・パラメータを記述しておく。
d2.lは7以内で指定した個数分のパラメータがMT32へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):TIMBRE GROUP (0~3:a,b,i,r)
1(a1):TIMBRE NUMBER (0~63)
2(a1):KEY SHIFT (0~48:-24~+24)
3(a1):FINE TUNE (0~100:-50~+50)
4(a1):BENDER RANGE (0~24)
5(a1):ASSIGN MODE (0~3:POLY1~4)
6(a1):REVERB SWITCH (0~1:OFF/ON)
(MT32マニュアルp35,CM64マニュアルp30参照)
--------------------------------------------------------------------------------
ファンクション$38 ZM_MT32_PRINT
機能 MT32の画面へのメッセージ出力
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:メッセージ長(1-20)
d3.w:d0-d15=DEVICE ID(0-127,-1:以前の値を使用)
a1.l:文字列格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 メッセージは20文字以内でa1.lからの領域に文字列を記述しておく。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$39 ZM_U220_SETUP
機能 U220のセットアップ・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:セットアップ・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にセットアップ・パラメータを記述しておく。
a1.lの構成は必ず下に示す書式に従う。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Chorus SW (0~1:OFF/ON)
1(a1):Reverb SW (0~1:OFF/ON)
2(a1):Rx Cntrl Channel (1~17:1~16,OFF)
3(a1):Patch Change (0~5:MAP1~MAP4,Dir,OFF)
4(a1):Timbre Change (0~5:MAP1~MAP4,Dir,OFF)
5(a1):Rhythm Change (0~5:MAP1~MAP4,Dir,OFF)
6(a1):R.Inst Assign (0~5:MAP1~MAP4,Dir,OFF)
(U220マニュアルp46,p146~148参照)
注意 U220用の命令はU20に対しても使用できる。以下同様。
--------------------------------------------------------------------------------
ファンクション$3a ZM_U220_PART_SETUP
機能 U220の(テンポラリパッチ)パートセットアップ・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:PART NUMBER(1-6)
a1.l:パートセットアップ・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパートセットアップ・パラメータを記述しておく。
a1.lの構成は必ず下に示す書式に従う。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Timbre Number (1~128)
1(a1):Voice Reserve (0~30)
2(a1):Receive Channel (1~17:1~16,OFF)
3(a1):Key Range Low (0~127:C-1~G9)
4(a1):Key Range High (0~127:C-1~G9)
5(a1):Velo Level (0~1:Above/Below)
6(a1):Velo Threshold (0~127)
7(a1):Output Assign (0~4:Dry,Rev,Cho,Dir1,Dir2)
8(a1):Level (0~127)
9(a1):Pan (0~15:L7~M~R7)
10(a1):Rx Volume (0~1:OFF/ON)
11(a1):Rx Pan (0~1:OFF/ON)
12(a1):Rx Hold (0~1:OFF/ON)
(U220マニュアルp58,p149参照)
--------------------------------------------------------------------------------
ファンクション$3b ZM_U220_COMMON
機能 U220の(テンポラリパッチ)コモン・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:コモン・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にコモン・パラメータを記述しておく。
a1.lの構成は必ず下に示す書式に従う。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Chorus Type (0~4:Chorus1,Chorus2,FB-Chorus,
Flanger,Short Delay)
1(a1):Chorus Out Mode (0~1:Pre Rev,Post Rev)
2(a1):Chorus Level (0~31)
3(a1):Chorus Delay (0~31)
4(a1):Chorus Rate (0~31)
5(a1):Chorus Depth (0~31)
6(a1):Chorus Feedback (1~63:-31~0~+31)
7(a1):Reverb Type (0~7:Room1~3,Hall1~2,Gate
Delay,CrossDelay)
8(a1):Reverb Time (0~31)
9(a1):Reverb Level (0~31)
10(a1):Reverb Delay Feedback (0~31)
11(a1):Reverb Pre Delay Feedback (0~31)
12(a1):Param1 # (0~63:0~5,7~31,64~95,OFF)
13(a1):Param1 Param (0:Timbre Level,1:Env Attack
2:Env Decay,3:Env Sustain
4:Env Release,5:A.Bend Depth
6:A.Bend Rate,7:Detune Depth
8:Vib Rate,9:Vib Wave Form
10:Vib Depth,11:Vib Delay
12:Vib Rise Time,13:Vib Mod Depth
14:Chorus Level,15:Chorus Rate
16:Chorus Feedback,17:Reverb Level
18:Delay Feedback)
14(a1):Param2 # (Same as Param1 #)
15(a1):Param2 Param (Same as Param1 Param)
16(a1):Param3 # (Same as Param1 #)
17(a1):Param3 Param (Same as Param1 Param)
(U220マニュアルp54,p149参照)
--------------------------------------------------------------------------------
ファンクション$3c ZM_U220_TIMBRE
機能 U220のティンバー・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.lw:d0-d15=DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:PROGRAM NUMBER(1-128)
a1.l:ティンバー・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にティンバー・パラメータを記述しておく。
a1.lの構成は必ず下に示す書式に従う。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Tone Media (0~31:I,1~31)
1(a1):Tone Number (1~128)
2(a1):Timbre Level (0~127)
3(a1):Velocity Sens (1~15:-7~+7)
4(a1):Channel Press Sens (1~15:-7~+7)
5(a1):Env Attack Rate (1~15:-7~+7)
6(a1):Env Decay Rate (1~15:-7~+7)
7(a1):Env Sustain Level (1~15:-7~+7)
8(a1):Env Release Rate (1~15:-7~+7)
9(a1):Pitch Shift Coarse (8~56:-24~+24)
10(a1):Pitch Shift Fine (14~114:-50~+50)
11(a1):Bend Range Lower (0~15:-36,-24,-12~0)
12(a1):Bend Range Upper (0~12)
13(a1):Channel After Sens (0~27:-36,-24,-12~+12)
14(a1):Poly After Sens (0~27:-36,-24,-12~+12)
15(a1):Auto Bend Depth (0~27:-36,-24,-12~+12)
16(a1):Auto Bend Rate (0~15)
17(a1):Detune Depth (0~15)
18(a1):Rate (0~63)
19(a1):Waveform (0~8)
20(a1):Depth (0~15)
21(a1):Delay (0~15)
22(a1):Rise Time (0~15)
23(a1):Modulation Depth (0~15)
24(a1):Ch After Sens (0~15)
25(a1):Poly After Sens (0~15)
(U220マニュアルp65,p149参照)
--------------------------------------------------------------------------------
ファンクション$3d ZM_U220_DRUM_SETUP
機能 U220の(テンポラリパッチ)パッチ・ドラム・セットアップ設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:ドラム・セットアップ・パラメータ格納バッファ
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にドラム・セットアップ・パラメータを
記述しておく。a1.lの構成は必ず下に示す書式に従う。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Rhythm Setup # (0~3:1~4)
1(a1):Voice Reserve (0~30)
2(a1):Receive Channel (1~17:1~16,OFF)
3(a1):Level (0~127)
4(a1):Level Boost Sw (0~1:OFF/ON)
5(a1):Rx Volume (0~1:OFF/ON)
6(a1):Rx Hold (0~1:OFF/ON)
(U220マニュアルp63,p149参照)
--------------------------------------------------------------------------------
ファンクション$3e ZM_U220_DRUM_INST
機能 U220の(テンポラリパッチ)ドラム音色設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:NOTE NUMBER(35-99)
a1.l:ドラム音色パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にドラム音色パラメータを記述しておく。
a1.lの構成は必ず下に示す書式に従う。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Tone Media (0~31:I,1~31)
1(a1):Tone Number (1~128)
2(a1):Source Key (0~127:C-1~G9)
3(a1):Mute Inst (34~98:OFF,B1~D7)
4(a1):Inst Level (0~31)
5(a1):Velocity Sens (0~15)
6(a1):Env Mode (0~1:Sustain,No Sustain)
7(a1):Env Attack Rate (1~15:-7~+7)
8(a1):Env Decay Rate (1~15:-7~+7)
9(a1):Env Release Rate (1~15:-7~+7)
10(a1):Pitch Shift Coarse (0~27:-36,-24,-12~+12)
11(a1):Pitch Shift Fine (14~114:-50~+50)
12(a1):Channel After Sens (0~27:-36,-24,-12~+12)
13(a1):Poly After Sens (0~27:-36,-24,-12~+12)
14(a1):Random (0~15)
15(a1):Auto Bend Depth (0~27:-36,-24,-12~+12)
16(a1):Auto Bend Rate (0~15)
17(a1):Detune Depth (0~15)
18(a1):Output Assign (0~3:Dry,Rev,Cho,Dir1)
19(a1):Pan (0~15:L7~M~R7)
(U220マニュアルp72,p149)
--------------------------------------------------------------------------------
ファンクション$3f ZM_U220_PRINT
機能 U220の画面へのメッセージ出力
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:メッセージ長(1-12)
d3.w:d0-d15=DEVICE ID(0-127,-1:以前の値を使用)
a1.l:文字列格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 メッセージは12文字以内でa1.lからの領域に文字列を記述しておく。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$40 ZM_M1_SETUP
機能 M1のSEQ-SONG0のMIDIチャンネルの設定
引数 a1.l:8パート分のMIDIチャンネル列格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表される領域には必ず8パート分のMIDIチャンネルを
記載しておく。
0(a1):パート1のMIDIチャンネル
1(a1):パート2のMIDIチャンネル
2(a1):パート3のMIDIチャンネル
3(a1):パート4のMIDIチャンネル
4(a1):パート5のMIDIチャンネル
5(a1):パート6のMIDIチャンネル
6(a1):パート7のMIDIチャンネル
7(a1):パート8のMIDIチャンネル
注意 M1用の命令はM1EX/M1R/M1REXに対しても使用できる。以下同様。
--------------------------------------------------------------------------------
ファンクション$41 ZM_M1_PART_SETUP
機能 M1のSEQ-SONG0のトラックパラメータの設定
引数 a1.l:8パート分のトラックパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表される領域には必ず8パート分のトラックパラメータを
記載しておく。
TRACK 1
0(a1):PROGRAM NUMBER (0~199:I00~C99)
1(a1):OUTPUT LEVEL (0~99)
2(a1):KEY TRANSPOSE ($F4~$0C:-12~12)
3(a1):DETUNE ($CE~$32:-50~+50)
4(a1):PAN (0~13:10:0~0:10,C,C+D,D)
TRACK 2~8
以下同様
(M1マニュアルp126参照)
--------------------------------------------------------------------------------
ファンクション$42 ZM_M1_EFFECT_SETUP
機能 M1のSEQ-SONG0のエフェクトパラメータの設定
引数 a1.l:エフェクトパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表される領域にはダミーデータも含めて必ず25個の
エフェクトパラメータが記載されていなければならない。
0(a1):Effect 1 Pattern No. (0~33:1~32,Thru)
1(a1):Effect 2 Pattern No. (0~33:1~32,Thru)
2(a1):Effect 1 L-Ch E.Balnc (0~100)
3(a1):Effect 1 R-Ch E.Balnc (0~100)
4(a1):Effect 2 L-Ch E.Balnc (0~100)
5(a1):Effect 2 R-Ch E.Balnc (0~100)
6(a1):Output 3 Pan (0~101:OFF,100:0~0:100)
7(a1):Output 4 Pan (0~101:OFF,100:0~0:100)
8(a1):Effect I/O (BIT0:Effect 1 L-Ch 0=OFF/1=ON
BIT1:Effect 1 R-Ch 0=OFF/1=ON
BIT2:Effect 2 L-Ch 0=OFF/1=ON
BIT3:Effect 2 R-Ch 0=OFF/1=ON)
BIT4:Effect 2 0=PARALLEL/1=SERIAL)
effect[9~16]:Effect 1 Parameter
effect[17~24]:Effect 2 Parameter
Structure of Effect Parameter
(ofs=9 or 17)
1~3:Hall (4,5:Room,6:Live Stage)
ofs+0(a1):Reverb Time (0~97:0.2~9.9),(0~48:0.2~5.0)
ofs+1(a1):Dummy 0
ofs+2(a1):High Damp (0~99)
ofs+3(a1):Pre Delay (0~200)
ofs+4(a1):E/R Level (0~99)
ofs+5(a1):Dummy 0
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
7~9:Early Reflection 1,2,3
ofs+0(a1):E/R Time (0~70:100~800)
ofs+1(a1):Pre Delay (0~200)
ofs+2(a1):Dummy 0
: :
ofs+5(a1):Dummy 0
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
10:Stereo Delayt,11:Cross Delay
ofs+0(a1):Delay Time L (L) (0~500)
ofs+1(a1):Delay Time L (H)
ofs+2(a1):Feedback ($9D~$63:-99~99)
ofs+3(a1):High Damp (0~99)
ofs+4(a1):Delay Time R (L) (0~500)
ofs+5(a1):Delay Time R (H)
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
12~13:Stereo Chorus 1~2 (14~15:Flanger)
ofs+0(a1):Depth (0~99)
ofs+1(a1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
ofs+2(a1):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
ofs+3(a1):Feedback ($9D~$63:-99~+99)
ofs+4(a1):Delay Time (0~200),(0~50)
ofs+5(a1):Dummy 0
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
16~17:Phase Shifter 1~2
ofs+0(a1):Depth (0~99)
ofs+1(a1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
ofs+2(a1):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
ofs+3(a1):Feedback ($9D~$63:-99~+99)
ofs+4(a1):Manual (0~99)
ofs+5(a1):Dummy 0
ofs+6(a1):Dummy 0
ofs+7(a1):Dummy 0
18~19:Stereo Toremolo 1~2
ofs+0(a1):Depth (0~99)
ofs+1(a1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
ofs+2(a1):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
ofs+3(a1):Shape ($9D~$63:-99~+99)
ofs+4(a1):Dummy 0
ofs+5(a1):Dummy 0
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
20:Equalizer
ofs+0(a1):Dummy 0
: :
ofs+3(a1):Dummy 0
ofs+4(a1):Low fc (0~2:0.25k,0.50k,1.00k)
ofs+5(a1):High fc (0~2:1k,2k,4k)
ofs+6(a1):High Gain ($F4~$0C:-12~+12)
ofs+7(a1):Low Gain ($F4~$0C:-12~+12)
21:Overdrive
ofs+0(a1):Dummy 0
ofs+1(a1):Dummy 0
ofs+2(a1):Drive (0~99)
ofs+3(a1):Level (0~99)
ofs+4(a1):Dummy 0
ofs+5(a1):Dummy 0
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
22:Distortion
ofs+0(a1):Dummy 0
ofs+1(a1):Dummy 0
ofs+2(a1):Distortion (0~99)
ofs+3(a1):Level (0~99)
ofs+4(a1):Dummy 0
ofs+5(a1):Dummy 0
ofs+6(a1):Dummy 0
ofs+7(a1):EQ Low Gain ($F4~$0C:-12~+12)
23:Exciter
ofs+0(a1):Blend ($9D~$63:-99~+99)
ofs+1(a1):Emphatic Point (0~9:1~10)
ofs+2(a1):Dummy 0
: :
ofs+5(a1):Dummy 0
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
24:Synphonic Ensamble
ofs+0(a1):Depth (0~99)
ofs+1(a1):Dummy 0
: :
ofs+5(a1):Dummy 0
ofs+6(a1):EQ High ($F4~$0C:-12~+12)
ofs+7(a1):EQ Low ($F4~$0C:-12~+12)
25:Roteffect Speaker
ofs+0(a1):Depth (0~99)
ofs+1(a1):Dummy 0
ofs+2(a1):Speed Rate ($F6~$0A:-10~+10)
ofs+3(a1):Dummy 0
: :
ofs+7(a1):Dummy 0
26:Delay/Hall
ofs+0(a1):Delay Time (L) (0~500)
ofs+1(a1):Delay Time (H)
ofs+2(a1):Feedback ($9D~$63:-99~99)
ofs+3(a1):High Damp (0~99)
ofs+4(a1):Reverb Time (0~97:0.2~9.9)
ofs+5(a1):Dummy 0
ofs+6(a1):High Damp (0~99)
ofs+7(a1):Pre Delay (0~150)
27:Delay/Room
ofs+0(a1):Delay Time (L) (0~500)
ofs+1(a1):Delay Time (H)
ofs+2(a1):Feedback ($9D~$63:-99~99)
ofs+3(a1):High Damp (0~99)
ofs+4(a1):Reverb Time (0~97:0.2~9.9)
ofs+5(a1):Dummy 0
ofs+6(a1):High Damp (0~99)
ofs+7(a1):Pre Delay (0~150)
28:Delay/Early Reflection
ofs+0(a1):Delay Time (L) (0~500)
ofs+1(a1):Delay Time (H)
ofs+2(a1):Feedback ($9D~$63:-99~99)
ofs+3(a1):High Damp (0~99)
ofs+4(a1):E/R Time (0~30:100~400)
ofs+5(a1):Pre Delay (0~150)
ofs+6(a1):Dummy 0
ofs+7(a1):Dummy 0
29:Delay/Chorus
ofs+0(a1):Delay Time L (L) (0~500)
ofs+1(a1):Delay Time L (H)
ofs+2(a1):Feedback L ($9D~$63:-99~99)
ofs+3(a1):High Damp L (0~99)
ofs+4(a1):Delay Time R (L) (0~500)
ofs+5(a1):Delay Time R (H)
ofs+6(a1):Feedback R ($9D~$63:-99~99)
ofs+7(a1):High Damp R (0~99)
30:Delay/Chorus (31:Delay Flanger)
ofs+0(a1):Delay Time (L) (0~500)
ofs+1(a1):Delay Time (H)
ofs+2(a1):Feedback ($9D~$63:-99~99)
ofs+3(a1):High Damp (0~99)
ofs+4(a1):Depth (0~99)
ofs+5(a1):Speed (0~99:0.03~3.00 0.03step
100~199:3.1~13.0 0.1step
200~216:14.0~30.0 1.0step)
ofs+6(a1):LFO Status (BIT0:Waveform =0:Sin,=1:Tri
BIT1:Phase =0:0.0゚,=1:180゚
BIT2:Wave Shape =0:Normal
=1:for Flanger)
ofs+7(a1):Feedback 0,($9D~$63:-99~99)
32:Delay/Phaser
ofs+0(a1):Delay Time (L) (0~500)
ofs+1(a1):Delay Time (H)
ofs+2(a1):Feedback ($9D~$63:-99~99)
ofs+3(a1):High Damp (0~99)
ofs+4(a1):Depth (0~99)
ofs+5(a1):Speed (0~99:0.03~3.00 0.03step)
ofs+6(a1):Feedback ($9D~$63:-99~99)
ofs+7(a1):Dummy 0
33:Delay/Tremolo
ofs+0(a1):Delay Time (L) (0~500)
ofs+1(a1):Delay Time (H)
ofs+2(a1):Feedback ($9D~$63:-99~99)
ofs+3(a1):High Damp (0~99)
ofs+4(a1):Depth (0~99)
ofs+5(a1):Speed (0~99:0.03~3.00 0.03step)
ofs+6(a1):Dummy 0
ofs+7(a1):Shape ($9D~$63:-99~99)
(M1マニュアルp127参照)
--------------------------------------------------------------------------------
ファンクション$43 ZM_M1_PRINT
機能 M1のSEQ-SONG0のタイトル設定
引数 d2.l:メッセージ長(1-10)
a1.l:文字列格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 メッセージは10文字以内でa1.lからの領域に文字列を記述しておく。
--------------------------------------------------------------------------------
ファンクション$44 ZM_SEND_TO_M1
機能 M1へパラメータを送信する
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 DEVICE ID=&H30+(グローバルチャンネル-1)
グローバルチャンネルとはGLOBALモードのF5-1で設定出来る。
d3.wは省略可能。省略すると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$30が選択される。
必ずファンクションM1_SETUP~ファンクションM1_PRINTを設定してからこの
ファンクションを実行すること。
ファンクションM1_EFFECT_SETUPのみ省略が可能。この時はZMUSICが持つ
デフォルトデータが送信される。
ファンクションM1_SETUP~ファンクションM1_PRINTの間にM1関係以外の
ファンクションコールがあると正常なデータが送信されない。
例
lea midi(pc),a1
Z_MUSIC #M1_SETUP
lea setup(pc),a1
Z_MUSIC #M1_PART_SETUP
lea print(pc),a1
Z_MUSIC #M1_PRINT
moveq.l #-1,d1
moveq.l #-1,d3
Z_MUSIC #SEND_TO_M1
rts
midi: dc.b 2,1,4,3,6,5,8,7
setup: /*音色,音量,キートランスポーズ,デチューン,パンのフォーマット*/
dc.b 0,99,0,0,5 *TRACK 1
dc.b 0,99,0,0,5 *TRACK 2
dc.b 0,99,0,0,5 *TRACK 3
dc.b 0,99,0,0,5 *TRACK 4
dc.b 0,99,0,0,5 *TRACK 5
dc.b 0,99,0,0,5 *TRACK 6
dc.b 0,99,0,0,5 *TRACK 7
dc.b 0,99,0,0,5 *TRACK 8
print: dc.b 'Z.Nishikawa',0
--------------------------------------------------------------------------------
ファンクション$46 ZM_SC88_MODE_SET
機能 SC88モード設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:SC88 MODE(0:Single, 1:Double)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
--------------------------------------------------------------------------------
ファンクション$47 ZM_SC88_REVERB
機能 SC88のリバーブ・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:リバーブパラメータ・データサイズ(1-8)
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:リバーブパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 s1.lからの領域にリバーブパラメータを記述しておく。d2.lは8以内で、
指定した個数分のパラメータがSC88へ送信される。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される
0(a1):REVERB MACRO 00:Room1,01:Room2,02:Room3,03:Hall1,04:Hall2
05:Plate,06:Delay,07:Panning Delay(FB)
1(a1):REVERB CHARACTER ($00~$07)
2(a1):REVERB PRE-LPF ($00~$07)
3(a1):REVERB LEVEL ($00~$7F)
4(a1):REVERB TIME ($00~$7F)
5(a1):REVERB DELAY FEEDBACK ($00~$7F)
6(a1):REVERB SEND LEVEL TO CHORUS ($00~$7F/SC88ではダミー)
7(a1):REVERB PRE-DELAY TIME ($00~$7F)
(SC88マニュアルp77参照)
--------------------------------------------------------------------------------
ファンクション$48 ZM_SC88_CHORUS
機能 SC88のコーラス・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:コーラスパラメータ・データサイズ(1-9)
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:コーラスパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にコーラスパラメータを記述しておく。d2.lは9以内で
指定した個数分のパラメータがSC88へ送信される。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):CHORUS MACRO 00:Chorus1,01:Chorus2,02:Chorus3,03:Chorus4
04:Feedback Chorus,05:Flanger,06:Short Delay
07:Short Delay(FB)
1(a1):CHORUS PRE-LPF ($00~$07)
2(a1):CHORUS LEVEL ($00~$7F)
3(a1):CHORUS FEEDBACK ($00~$7F)
4(a1):CHORUS DELAY ($00~$7F)
5(a1):CHORUS RATE ($00~$7F)
6(a1):CHORUS DEPTH ($00~$7F)
7(a1):CHORUS SEND LEVEL TO REVERB ($00~$7F)
8(a1):CHORUS SEND LEVEL TO DELAY ($00~$7F)
(SC88マニュアルp78参照)
--------------------------------------------------------------------------------
ファンクション$49 ZM_SC88_DELAY
機能 SC88のディレイ・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ディレイパラメータ・データサイズ(1-11)
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:ディレイパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にリバーブパラメータを記述しておく。d2.lは11以内で、
指定した個数分のパラメータがSC88へ送信される。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される
0(a1):DELAY MACRO 00:Delay1,01:Delay2,02:Delay3,03:Delay4,04:Pan Delay1
05:Pan Delay2,06:Pan Delay3,07:Pan Delay4
08:Delay to Reverb,09:Pan Repeat
1(a1):DELAY PRE-LPF ($00~$07)
2(a1):DELAY TIME CENTER ($01~$73:0.1ms~sec)
3(a1):DELAY TIME RATIO LEFT ($01~$78:4~500%)
4(a1):DELAY TIME RATIO RIGHT ($01~$78:4~500%)
5(a1):DELAY LEVEL CENTER ($00~$7F)
6(a1):DELAY LEVEL LEFT ($00~$7F)
7(a1):DELAY LEVEL RIGHT ($00~$7F)
8(a1):DELAY LEVEL ($00~$7F)
9(a1):DELAY FEEDBACK ($00~$7F:-64~+63)
10(a1):DELAY SENDLEVEL TO REVERB ($00~$7F)
(SC88マニュアルp78参照)
--------------------------------------------------------------------------------
ファンクション$4a ZM_SC88_EQUALIZER
機能 SC88のイコライザ・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:イコライザパラメータ・データサイズ(1-4)
d3.w:DEVICE ID(0-127,-1:以前の値を使用)
a1.l:イコライザパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にコーラスパラメータを記述しておく。d2.lは4以内で
指定した個数分のパラメータがSC88へ送信される。
d3.wを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):EQ LOW FREQ (0,1:200Hz,400Hz)
1(a1):EQ LOW GAIN ($34~$4c:-12~+12dB)
2(a1):EQ HIGH FREQ (0,1:3kHz,6kHz)
3(a1):EQ HIGH GAIN ($34~$4c:-12~+12dB)
(SC88マニュアルp78参照)
--------------------------------------------------------------------------------
ファンクション$4b ZM_SC88_PART_SETUP(ZM_SC88_PART_PARAMETER)
機能 SC88のパート・パラメータの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:パートパラメータ・データサイズ(1-127)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:PART NUMBER(1-16)
a1.l:パートパラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にパートパラメータを記述しておく。d2.lは127以内で
指定した個数分のパラメータがSC88へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):Rx CHANNEL (1~16,17=OFF)
1(a1):Rx PITCH BEND (0~1:OFF/ON)
2(a1):Rx CH PRESSURE(CAf) (0~1:OFF/ON)
3(a1):Rx PROGRAM CHANGE (0~1:OFF/ON)
4(a1):Rx CONTROL CHANGE (0~1:OFF/ON)
5(a1):Rx POLY PRESSURE(PAf) (0~1:OFF/ON)
6(a1):Rx NOTE MESSAGE (0~1:OFF/ON)
7(a1):Rx RPN (0~1:OFF/ON)
8(a1):Rx NRPN (0~1:OFF/ON)
9(a1):Rx MODURATION (0~1:OFF/ON)
10(a1):Rx VOLUME (0~1:OFF/ON)
11(a1):Rx PANPOT (0~1:OFF/ON)
12(a1):Rx EXPRESSION (0~1:OFF/ON)
13(a1):Rx HOLD1 (0~1:OFF/ON)
14(a1):Rx PORTAMENTO (0~1:OFF/ON)
15(a1):Rx SOSTENUTO (0~1:OFF/ON)
16(a1):Rx SOFT (0~1:OFF/ON)
17(a1):MONO/POLY MODE (0~1:MONO/POLY)
18(a1):ASSIGN MODE (0:SINGLE,1:LIMITED-MULTI,2:FULL-MULTI)
19(a1):USE FOR RHYTHM PART (0:OFF,1:MAP1,2:MAP2)
20(a1):PITCH KEY SHIFT ($28~$58:-24~+24[semitone])
21(a1):PITCH OFFSET FINE(upper) ($08~$F8:-12.0~+12.0[Hz])
22(a1):PITCH OFFSET FINE(lower) 〃
23(a1):PART LEVEL (0~127)
24(a1):VELOCITY SENSE DEPTH (0~127)
25(a1):VELOCITY SENSE OFFSET (0~127)
26(a1):PART PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
27(a1):KEY RANGE LOW (0~127:C-1~G9)
28(a1):KEY RANGE HIGH (0~127:C-1~G9)
29(a1):CC1 CONTROL NUMBER (0~127)
30(a1):CC2 CONTROL NUMBER (0~127)
31(a1):CHORUS SEND LEVEL (0~127)
32(a1):REVERB SEND LEVEL (0~127)
33(a1):Rx BANK SELECT (0:OFF,1:ON)
34(a1):Rx BANK SELECT LSB (0:OFF,1:ON)
35(a1):PITCH FINE TUNE(Upper) ($00 00~$40 00~$7f 7f:-100~0~+100)
36(a1):PITCH FINE TUNE(Lower)
37(a1):DELAY SEND LEVEL (0~127)
38(a1):Vibrato rate ($00~$7f:-64~+63)
39(a1):Vibrato depth ($00~$7f:-64~+63)
40(a1):TVF cutoff freq. ($00~$7f:-64~+63)
41(a1):TVF resonance ($00~$7f:-64~+63)
42(a1):TVF&TVA Env.attack ($00~$7f:-64~+63)
43(a1):TVF&TVA Env.decay ($00~$7f:-64~+63)
44(a1):TVF&TVA Env.release ($00~$7f:-64~+63)
45(a1):Vibrato delay ($00~$7f:-64~+63)
46(a1):SCALE TUNING C ($00~$7F:-64~+63[cent])
47(a1):SCALE TUNING C# ($00~$7F:-64~+63[cent])
48(a1):SCALE TUNING D ($00~$7F:-64~+63[cent])
49(a1):SCALE TUNING D# ($00~$7F:-64~+63[cent])
50(a1):SCALE TUNING E ($00~$7F:-64~+63[cent])
51(a1):SCALE TUNING F ($00~$7F:-64~+63[cent])
52(a1):SCALE TUNING F# ($00~$7F:-64~+63[cent])
53(a1):SCALE TUNING G ($00~$7F:-64~+63[cent])
54(a1):SCALE TUNING G# ($00~$7F:-64~+63[cent])
55(a1):SCALE TUNING A ($00~$7F:-64~+63[cent])
56(a1):SCALE TUNING A# ($00~$7F:-64~+63[cent])
57(a1):SCALE TUNING B ($00~$7F:-64~+63[cent])
58(a1):MOD PITCH CONTROL ($28~$58:-24~+24[semitone])
59(a1):MOD TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
60(a1):MOD AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
61(a1):MOD LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
62(a1):MOD LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
63(a1):MOD LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
64(a1):MOD LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
65(a1):MOD LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
66(a1):MOD LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
67(a1):MOD LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
68(a1):MOD LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
69(a1):BEND PITCH CONTROL ($40~$58:-24~+24[semitone])
70(a1):BEND TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
71(a1):BEND AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
72(a1):BEND LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
73(a1):BEND LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
74(a1):BEND LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
75(a1):BEND LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
76(a1):BEND LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
77(a1):BEND LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
78(a1):BEND LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
79(a1):BEND LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
80(a1):CAf PITCH CONTROL ($28~$58:-24~+24[semitone])
81(a1):CAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
82(a1):CAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
83(a1):CAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
84(a1):CAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
85(a1):CAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
86(a1):CAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
87(a1):CAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
88(a1):CAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
89(a1):CAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
90(a1):CAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
91(a1):PAf PITCH CONTROL ($28~$58:-24~+24[semitone])
92(a1):PAf TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
93(a1):PAf AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
94(a1):PAf LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
95(a1):PAf LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
96(a1):PAf LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
97(a1):PAf LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
98(a1):PAf LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
99(a1):PAf LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
100(a1):PAf LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
101(a1):PAf LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
102(a1):CC1 PITCH CONTROL ($28~$58:-24~+24[semitone])
103(a1):CC1 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
104(a1):CC1 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
105(a1):CC1 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
106(a1):CC1 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
107(a1):CC1 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
108(a1):CC1 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
109(a1):CC1 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
110(a1):CC1 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
111(a1):CC1 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
112(a1):CC1 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
113(a1):CC2 PITCH CONTROL ($28~$58:-24~+24[semitone])
114(a1):CC2 TVF CUTOFF CONTROL ($00~$7F:-9600~+9600[CENT])
115(a1):CC2 AMPLITUDE CONTROL ($00~$7F:-100.0~+100.0[%])
116(a1):CC2 LFO1 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
117(a1):CC2 LFO1 PITCH DEPTH ($00~$7F:0~600[cent])
118(a1):CC2 LFO1 TVF DEPTH ($00~$7F:0~2400[cent])
119(a1):CC2 LFO1 TVA DEPTH ($00~$7F:0~100.0[%])
120(a1):CC2 LFO2 RATE CONTROL ($00~$7F:-10.0~+10.0[Hz])
121(a1):CC2 LFO2 PITCH DEPTH ($00~$7F:0~600[cent])
122(a1):CC2 LFO2 TVF DEPTH ($00~$7F:0~2400[cent])
123(a1):CC2 LFO2 TVA DEPTH ($00~$7F:0~100.0[%])
124(a1):TONE MAP NUMBER (0:SELECTED,1:SC55,2:SC88)
125(a1):TONE MAP0 NUMBER (1:SC55,2:SC88)
126(a1):EQ ON/OFF (0:OFF,1:ON)
(SC88マニュアルp79~p81参照)
--------------------------------------------------------------------------------
ファンクション$4c ZM_SC88_DRUM_SETUP(ZM_SC88_DRUM_PARAMETER)
機能 SC88のドラム・セットアップ設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ドラム・セットアップ・パラメータ・データサイズ(1-9)
d3.lw:d0-d15=DEVICE ID(0-127,-1:以前の値を使用)
d3.hwlb:NOTE NUMBER(0-127)
d3.hwhb:MAP NUMBER(0-1)
a1.l:ドラム・セットアップ・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にドラム・セットアップ・パラメータを記述しておく。
d2.lは9以内で指定した個数分のパラメータがSC88へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):PLAY KEY NUMBER (0~127)
1(a1):LEVEL (0~127)
2(a1):ASSIGN GROUP NUMBER (0:NON,1~127)
3(a1):PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
4(a1):REVERB DEPTH (0~127:0.0~1.0)
5(a1):CHORUS DEPTH (0~127:0.0~1.0)
6(a1):Rx NOTE OFF (0~1:OFF/ON)
7(a1):Rx NOTE ON (0~1:OFF/ON)
8(a1):DELAY SEND LEVEL (0-127:0.0~1.0)
(SC88マニュアルp82参照)
--------------------------------------------------------------------------------
ファンクション$4d ZM_SC88_DRUM_NAME
機能 SC88のドラム・セット名設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ドラム・セットアップ・パラメータ・データサイズ(1-8)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hw:MAP NUMBER(0,1,$80,$81)
a1.l:ドラム・セット名文字列格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 文字列は12文字以内でa1.lからの領域に文字列を記述しておく。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
MAP NUMBER=$80がユーザードラムセット65,MAP NUMBER=$81が
ユーザードラムセット66に対応する。
(SC88マニュアルp82参照)
--------------------------------------------------------------------------------
ファンクション$4e ZM_SC88_USER_INST
機能 SC88のユーザー音色の設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ユーザー音色パラメータ・データサイズ(1-11)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hwlb:PROGRAM NUMBER(0-127)
d3.hwhb:BANK NUMBER(0-1)
a1.l:ユーザー音色・パラメータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にユーザー音色・パラメータを記述しておく。
d2.lは11以内で指定した個数分のパラメータがSC88へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):SOURCE TONE#(MAP) (1,2)
1(a1):BANK NUMBER MSB (0~127)
2(a1):PROGRAM NUMBER (0~127)
3(a1):Vibrato rate ($00~$7f:-64~+63)
4(a1):Vibrato depth ($00~$7f:-64~+63)
5(a1):TVF cutoff freq. ($00~$7f:-64~+63)
6(a1):TVF resonance ($00~$7f:-64~+63)
7(a1):TVF&TVA Env.attack ($00~$7f:-64~+63)
8(a1):TVF&TVA Env.decay ($00~$7f:-64~+63)
9(a1):TVF&TVA Env.release ($00~$7f:-64~+63)
10(a1):Vibrato delay ($00~$7f:-64~+63)
(SC88マニュアルp82参照)
--------------------------------------------------------------------------------
ファンクション$4f ZM_SC88_USER_DRUM
機能 SC88のユーザードラムセットの設定
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
d2.l:ユーザードラムセット・パラメータ・データサイズ(1-12)
d3.lw:DEVICE ID(0-127,-1:以前の値を使用)
d3.hwlb:NOTE NUMBER(0-127)
d3.hwhb:SET NUMBER(0-1)
a1.l:ユーザードラムセット・パラメータ格納バッファ
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからの領域にユーザードラムセット・パラメータを記述しておく。
d2.lは12以内で指定した個数分のパラメータがSC88へ送信される。
d3.lwを-1とすると以前設定したものが選択される。最初の使用時に
省略した場合はZMUSIC内のデフォルト値$10が選択される。
0(a1):PLAY KEY NUMBER (0~127)
1(a1):LEVEL (0~127)
2(a1):ASSIGN GROUP NUMBER (0:NON,1~127)
3(a1):PANPOT (0:RANDOM,01(LEFT)~64~127(RIGHT))
4(a1):REVERB DEPTH (0~127:0.0~1.0)
5(a1):CHORUS DEPTH (0~127:0.0~1.0)
6(a1):Rx NOTE OFF (0~1:OFF/ON)
7(a1):Rx NOTE ON (0~1:OFF/ON)
8(a1):DELAY SEND LEVEL (0-127:0.0~1.0)
9(a1):SOURCE DRUM SET#(MAP) (1-2)
10(a1):PROGRAM NUMBER (0-127)
11(a1):SOURCE NOTE NUMBER (0-127)
(SC88マニュアルp82参照)
--------------------------------------------------------------------------------
ファンクション$50 ZM_PCM_READ
機能 (AD)PCMファイルの登録
引数 d1.lw:登録番号 (トーン番号の場合:0~32767)
(音色番号の場合:$8000+(0~32767)
d1.hw:PCM加工コマンド(PPC)でPCMデータ加工するか(-1:YES,0:NO)
d2.hwhb:登録次元(-1:ADPCM,1=16BitPCM,0=V2互換)
d2.hwlb:オリジナルキー:0-127
a1.l:登録データ情報およびPPC列格納バッファ(備考参照)
0とするとd1.lwで表される登録済みのトーンや音色を削除する。
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
a0.l:a1.l処理後のアドレス(ただし正常終了(d0.l=0)の時のみ有効)
備考 a1.lからはまず、最大32文字分の音色名文字列を格納する。終端コードは0。
次にディスクから(AD)PCMファイルを読みこむ場合はそのファイル名を
格納する。終端コードは0。...(1)
ディスクからデータを読み込まずにすでにZMUSIC側に登録されている
(AD)PCMデータをコピーして加工するには音色名の後に $0000 を格納し
さらにその後に参照番号を指定する。...(2)
PPCで(AD)PCMを加工する場合には、PPC列をこの後ろに格納しておく。
また、PPCで(AD)PCMを加工する場合は必ずd1.hwを-1とすること。
d1.hwが0だとたとえPPCがあっても無視される。
PPCについてはMEASURE12を参照。
(1)の場合
[TONE NAME...最大32文字],0,[FILENAME文字列],0,PPCコマンド列...
(2)の場合
[TONE NAME...最大32文字],0,$00,$00,参照先番号(2bytes),PPCコマンド列...
参照先番号は
ノート番号の場合:0~32767
音色番号の場合:$8000+(0~32767)
で表される。
--------------------------------------------------------------------------------
ファンクション$51 ZM_REGISTER_ZPD
機能 ZPDの登録
引数 a1.l:登録するZPDのファイルネーム格納アドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$52 ZM_SET_ZPD_TABLE
機能 ZPDテーブルの登録
引数 d1.l:ZPDバージョンタイプ(0:V1.0~V2.0,1:V3,2:PDX)
a1.l:登録するZPDテーブルのアドレス(ZPDヘッダ「$1a,'ZmaDPcM'」含まず)
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 ZPDのテーブルの構造に付いてはMEASURE12を参照
--------------------------------------------------------------------------------
ファンクション$53 ZM_CONVERT_PCM
機能 (AD)PCMデータの変換を行う
引数 d1.w:変換モード(0:ADPCM to PCM,1:PCM TO ADPCM)
d2.l:変換元の(AD)PCMのデータサイズ
a1.l:変換元となる(AD)PCMデータの格納領域アドレス
a2.l:変換先となる(AD)PCMデータの格納領域アドレス
戻り値 なし
--------------------------------------------------------------------------------
ファンクション$54 ZM_EXEC_SUBFILE
機能 サブファイルの読み込みと実行
引数 a1.l:サブファイルのファイル名格納アドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 サブファイルとは演奏の際に必要となる別ファイルにまとめた
補助ファイルのことを指す。具体的には、演奏ファイル(ZMS,ZMD,OPM)、
ADPCM定義リスト(CNF),ZPDファイル、MIDIデータファイル(MDD,MID)など。
--------------------------------------------------------------------------------
ファンクション$55 ZM_TRANSMIT_MIDI_DUMP
機能 MIDIデータファイルの転送
引数 d1.w:MIDIポートの番号(0-3)
-1はカレントMIDI-OUTを使用
a1.l:MIDIデータファイルのファイル名格納アドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 MIDIデータファイルにはV1からV2で標準MIDIデータファイルと
されてきたMDDファイルとV3から採用されたスタンダードMIDI
ファイル(FORMAT0)のMIDIファイルの2タイプがあるが、
この関数ではどちらも楽器へ転送することができる。
--------------------------------------------------------------------------------
ファンクション$56 ZM_SET_WAVE_FORM1
機能 波形メモリの登録1
引数 d1.w:波形番号(8-32767)
a1.l:波形メモリデータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表される波形メモリデータは以下の構成を取る。
0(a1):(.l)波形のデータサイズ(必ず偶数)
4(a1):(.b)ループタイプ(0:oneshot,1:repeat,2:altanative)
5(a1):(.l)ループ開始オフセット
9(a1):(.l)ループ終了オフセット
13(a1):(.l)ループ回数(0:∞,1~)
17(a1):(.l)ダミー
21(a1):(.b)波形名文字列長
22(a1):(.?):文字列(終端コード0無し)
偶数アドレスから実際の波形データ(signed short)
:
:
※本ファンクションで登録された波形はZMUSICに取り込まれるため、登録後
波形データ本体のメモリを解放しても構わない。
--------------------------------------------------------------------------------
ファンクション$57 ZM_SET_WAVE_FORM2
機能 波形メモリの登録2
引数 d1.w:波形番号(8-32767)
a1.l:波形メモリデータ格納バッファアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lで表される波形メモリデータは以下の構成は
ファンクションZM_SET_WAVE_FORM1と同じ
※本ファンクションで登録された波形はZMUSICに取り込まれないため、登録後
波形データ本体のメモリを解放してはならない。
--------------------------------------------------------------------------------
ファンクション$58 ZM_OBTAIN_EVENTS
機能 各種イベントの取得
引数 d1.w:どのイベントに関する設定を行うかのビットマーカー
ビット=1でそのイベントの設定を更新する。
a1.l:各種イベント発生時のジャンプ先とジャンプ条件が
記述された領域。構成は備考参照。
-1とするとint omtによらず設定は一切行わない。
戻り値 a0.l=現在の設定を格納した領域のアドレス。構成は備考参照。
備考 $00(a1):m_playが実行された時のジャンプ先アドレス d1.wのd0ビット
$04(a1):m_stopが実行された時のジャンプ先アドレス d1.wのd1ビット
$08(a1):m_contが実行された時のジャンプ先アドレス d1.wのd2ビット
$0c(a1):演奏が終了した時のジャンプ先アドレス d1.wのd3ビット
$10(a1):指定ループ回数(0:OFF,1-256) d1.wのd4ビット
$14(a1):指定回数ループした時のジャンプ先アドレス d1.wのd5ビット
$18(a1):指定クロック(0:OFF,1~) d1.wのd6ビット
$1c(a1):演奏開始後指定クロック経過した時のジャンプ先アドレス d1.wのd7ビット
d1.wでビット=1としたパラメータのみをa1.lから記述しておく。
d1.wでビット=0としたパラメータに関しては記述しない。
たとえばd1.w=$81の場合、a1.lからは
$00(a1)に「m_playが実行された時のジャンプ先アドレス」
$04(a1)に「演奏開始後指定クロック経過した時のジャンプ先アドレス」
を記述しておけばよい。
なお、各ジャンプ先のルーチンではレジスタを破壊してはならず(保存する
必要がある)、ルーチンの終端は「RTS」命令で終わる必要がある。
--------------------------------------------------------------------------------
ファンクション$59 ZM_LOOP_CONTROL
機能 ループ制御
引数 d1.l:コントロールモード
-1=ループ回数取得
0=通常ループ指定
1=ループ無視指定
戻り値 d0.l=-1以外:現在のループ回数(1~)
d0.l=-1:エラー
備考 ループ無視指定にいてはMEASURE14参照。
--------------------------------------------------------------------------------
ファンクション$5a ZM_MASK_TRACKS
機能 トラックマスク
引数 a1.l:0=全トラックマスクモード
:1=トラックソロモード
:0,1以外=マスクするトラックとマスク・モードのペアを格納した
領域のアドレス
d1.w:a1.l=0のとき 0=マスク解除,1=マスク反転,-1=マスク設定
:a1.l=1のとき ソロ演奏させるトラック番号(0-65534)
:a1.l=0,1以外のとき無効
戻り値 a0.l=設定出来なかったトラック番号(.w)の並びを格納した領域のアドレス。
終端コード=-1(.w)
備考 a1.l=0,1のとき、a1.lからは
トラック番号(.w):0-65534,
マスクモード(.w):0=MASK OFF, 1=REVERSE, -1=MASK ON
の数値列を記載する。終端コードは(short)-1。
--------------------------------------------------------------------------------
ファンクション$5b ZM_MASK_CHANNELS
機能 チャンネルマスク
引数 a1.l:0=全トラックマスクモード
:1=トラックソロモード
:0,1以外=マスクするトラックとマスク・モードのペアを格納した
領域のアドレス
d1.w:a1.l=0のとき 0=マスク解除,1=マスク反転,-1=マスク設定
:a1.l=1のとき ソロ演奏させるチャンネルID
:a1.l=0,1以外のとき無効
戻り値 a0.l=設定出来なかったチャンネルID(.l)の並びを格納したアドレス,
終端コード=-1(.w)
備考 a1.lからは
チャンネルID(.l),マスクモード(.w)
の数値列を記載する。なお、チャンネルIDは
チャンネルID(上位16ビット):0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2
$8002=MIDI3,$8003=MIDI4
-1=カレントMIDI
チャンネルID(下位16ビット):チャンネル番号0-15
マスクモードは(0:MASK OFF,1:REVERSE,-1:MASK ON) の値をとる。
終端コードは-1(.w)。
たとえばMIDI1の15チャンネル(ID:$8000_000e)をマスク(ID:$ffff)、
ADPCMの3チャンネル(ID:$0001_0002)をマスク反転(ID:$0001)する場合は
{ $8000,$000e,$ffff,$0001,$0002,$0001,$ffff }
となる。
--------------------------------------------------------------------------------
ファンクション$5c ZM_SET_CH_OUTPUT_LEVEL
機能 各チャンネルの出力レベルの設定
引数 a1.l:出力パラメータを記載した領域のアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからは以下の構成の出力パラメータを格納しておく。
0(a1):(.w)デバイス(0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2
$8002=MIDI3,$8003=MIDI4
-1=カレントMIDI)
2(a1):(.w)チャンネル番号(0-15)
4(a1):(.b)パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
5(a1):(.w)移動速度(フェーダー移動速度。0で動かさない)
7(a1):(.b)フェーダー移動開始レベル(0-128)
8(a1):(.b)フェーダー移動終了レベル(0-128)
--------------------------------------------------------------------------------
ファンクション$5d ZM_SET_TR_OUTPUT_LEVEL
機能 各トラックの出力レベルの設定
引数 a1.l:出力パラメータを記載した領域アドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからは以下の構成の出力パラメータを格納しておく。
0(a1):(.w)トラック番号(0-65534)
2(a1):(.b)パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
3(a1):(.w)移動速度(フェーダー移動速度。0で動かさない)
5(a1):(.b)フェーダー移動開始レベル(0-128)
6(a1):(.b)フェーダー移動終了レベル(0-128)
--------------------------------------------------------------------------------
ファンクション$5e ZM_MASTER_FADER
機能 マスターフェーダーの設定
引数 a1.l:出力パラメータを記載した領域のアドレス
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード
備考 a1.lからは以下の構成の出力パラメータを格納しておく。
0(a1):(.w)デバイス(0=FM音源,1=ADPCM音源
$8000=MIDI1,$8001=MIDI2
$8002=MIDI3,$8003=MIDI4
-1=カレントMIDI)
2(a1):(.b)パラメータ有効ビット(d0:移動速度,d1:開始レベル,d2:終了レベルに
それぞれ対応しビット=1でそのパラメータが後続しこれを設定する)
3(a1):(.w)移動速度(フェーダー移動速度。0で動かさない)
5(a1):(.b)フェーダー移動開始レベル(0-128)
6(a1):(.b)フェーダー移動終了レベル(0-128)
--------------------------------------------------------------------------------
ファンクション$5f ZM_GET_FADER_STATUS
機能 フェーダーの状態取得
引数 なし
戻り値 d0.lの第0,1,6,7ビットに検査結果が反映される。
d0:実行中のチャンネルフェーダーすべてが目的に達している(1:達成した 0:達成していない)
d1:実行中のマスターフェーダーすべてが目的に達している(1:達成した 0:達成していない)
d6:チャンネルフェーダーの状態(1:実行中 0:実行されていない)
d7:マスターフェーダーの状態(1:実行中 0:実行されていない)
--------------------------------------------------------------------------------
ファンクション$60 ZM_GET_PLAY_TIME
機能 演奏時間の取得
引数 なし
戻り値 d0.lに16進表現で00HHMMSSという書式で返ってくる。
なおHH:0-99,MM:0-59,SS:0-59の値を取る。
--------------------------------------------------------------------------------
ファンクション$61 ZM_GET_1ST_COMMENT
機能 演奏中の曲のコメントを取り出す
引数 なし
戻り値 a0.l=文字列のポインタ,終端コードは0
--------------------------------------------------------------------------------
ファンクション$62 ZM_GET_TIMER_MODE
機能 現在のテンポソースとなっているタイマの種類を返す
引数 なし
戻り値 d0.l=0:タイマ A,1:タイマ B,2:YM3802タイマ
--------------------------------------------------------------------------------
ファンクション$63 ZM_GET_TRACK_TABLE
機能 演奏トラックテーブルのアドレスを得る
引数 なし
戻り値 a0.l=音楽演奏トラックテーブルのアドレス
d0.l=効果音演奏トラックテーブルのアドレス
備考 音楽演奏トラックテーブル,効果音演奏トラックテーブルには演奏に
使用されるトラック番号(0-65534)(.w)が-1(.w)を終端コードとして
羅列される。
--------------------------------------------------------------------------------
ファンクション$64 ZM_GET_PLAY_WORK
機能 音楽演奏トラックワークのアドレスを得る
引数 d1.w:トラック番号(0-65534)
戻り値 a0.l=音楽演奏トラックワークのアドレス
d0.l=効果音演奏トラックワークのアドレス
備考 音楽演奏トラックワーク,効果音演奏トラックの内容と構成に付いては
MEASURE13を参照のこと。
--------------------------------------------------------------------------------
ファンクション$65 ZM_GET_BUFFER_INFORMATION
機能 バッファ・アドレステーブルのアドレス
引数 なし
戻り値 a0.l=バッファ・アドレステーブルのアドレス
備考 バッファ・アドレステーブルの構成に付いてはMEASURE13を参照のこと
--------------------------------------------------------------------------------
ファンクション$66 ZM_GET_ZMSC_STATUS
機能 ZMUSICの状態ワークのアドレス
引数 なし
戻り値 a0.l=ZMUSICの状態ワークのアドレス
備考 ZMUSICの状態ワークのアドレスの構成に付いてはMEASURE13を参照のこと
--------------------------------------------------------------------------------
ファンクション$67 ZM_CALC_TOTAL
機能 ZMDの演奏時間やトータルステップタイムなどの計算
引数 a1.l:ZMDの先頭アドレス(ヘッダはあってもなくてもよい)
戻り値 d0.l=0:正常終了
a0.l=結果格納アドレス
d0.l=0以外:発生したエラーの数
a0.l=エラーテーブルアドレス
備考 ・戻り値が0以外の場合はa0.lにはエラーの内容を格納した
エラーテーブルのアドレスが返される。
エラーテーブルの構成に付いてはMEASURE11を参照のこと。
・いずれの場合もa0.lに返された領域は使用後ファンクションFREE_MEMなどで
解放すること。
・この関数はコンパイラに含まれる外部組み込みのファンクションと
であるため、使用前にはコンパイラの常駐を確認する必要がある。
・戻り値が0の場合はa0.lには計算結果データ列を格納した領域の
ポインタが返される。計算結果データ列の構成を以下に示す。
TOTAL STEPTIME(.l) グローバルリザルト群
TOTAL CHECKSUM(.l)
予想演奏時間(.l) $00HHMMSS
RESERVED(.l)
RESERVED(.l)
RESERVED(.l)
RESERVED(.l)
RESERVED(.l)
TRACK1の情報までのOFFSET(.l)
TRACK2の情報までのOFFSET(.l)
:
TRACKnの情報までのOFFSET(.l)
-1.(.w) endcode
TRACK1の情報
TRACK2の情報
:
:
TRACKxの情報構成
各トラックの情報は以下のような構成を取る
clc_total0: ds.l 1 *.l 総ステップタイム(ループ外)
clc_total1: ds.l 1 *.l 総ステップタイム(ループ内)
clc_checksum: ds.l 1 *.l 総チェックサム
clc_measure: ds.l 1 *.l 総小節数
以降、clc_measureで表される小節数分以下の構成の情報が繰り返される。
clc_ms_total: ds.l 1 *.l 第1小節の総ステップタイム
clc_dummy: ds.w 1 *.w RESERVED
clc_ms_checksum: ds.w 1 *.w 第1小節のチェックサム
・自作プログラムから上記のオフセットテーブルを利用して計算結果情報
を参照する場合はソースリストに含まれる ZCLABEL.MAC をインクルード
するとよい。
--------------------------------------------------------------------------------
ファンクション$68 ZM_APPLICATION_RELEASER
機能 外部アプリケーションの常駐解除ルーチンの登録
引数 a1.l:外部アプリケーションの常駐解除ルーチンの先頭アドレス
0に設定すると登録解除の指定となる。
d1.l:登録時に返されたリザルトコード(a1.l=0の時のみ有効)
戻り値 a0.l=0:エラー
a0.l=0以外:正常終了
d0.l:リザルトコード(ただしa0.l≠0の時のみ有効)
備考 ・ZMUSICが常駐解除する時に同時に解除出来るようにするための手続き。
ZMUSICが常駐解除するときa1.lのルーチンにエントリする。
・d0.lには登録IDが返される。このIDは常駐解除ルーチンの
登録をキャンセル(a1.l=0にて本ファンクションをコール)する場合に
用いる。
・a1.lから始まる各解放ルーチンは必要処理を実行後、最後に
ZMUSIC側で解放してほしいメモリブロックがあるならば
そのアドレスをa0.lにかえすようにすること。
なければa0.l=0を返すこと
・a1.lからの解放ルーチンの実行後に、なにか表示したい
メッセージが有る場合はその文字列のアドレスをa1.lに返すようにすること。
なければa1.l=0を返すこと
・a1.lからの解放ルーチンでエラーが発生した場合は戻り値として
d0.l(0:no error,1:occupied,-1:error)を返すことが出来る。
エラーが発生した場合もその旨を告げるメッセージ文字列をa1.lに
与えることが出来る。
--------------------------------------------------------------------------------
ファンクション$69 ZM_RELEASE_DRIVER
機能 ZMUSICの解除
引数 なし
戻り値 d0.l=0:正常終了
d0.l=0以外:エラーコード(常駐解除失敗)
a0.l=ZMUSICの常駐アドレス
備考 戻り値a0.lで示される領域をシステムのメモリ解放コールMFREE
(DOSCALL $FF49) を呼び出して解放した時点でZMUSICの常駐解除が
完全に行われたことになる。
--------------------------------------------------------------------------------
ファンクション$6a ZM_OCCUPY_ZMUSIC
機能 ZMUSICの占有
引数 d1.l:1=占有する,0=占有を解除する,-1=占有状態の検査
戻り値 d0.l=以前の占有状態(0=占有されていない,1=占有されている)
(d1.l=0,1のときのみ有効)
d0.l=現在の占有状態(0=占有されていない,1=占有されている)
(d1.l=-1のときのみ有効)
--------------------------------------------------------------------------------
ファンクション$6b ZM_HOOK_FNC_SERVICE
機能 ZMUSICのファンクションコール/サブルーチンのフック
引数 d1.hw:(0:ファンクションコール,1:MIDI出力サブルーチン)
(d1.hw=0のとき)
d0.lw:ファンクションコール(0-127)
a1.l:ユーザーファンクションのエントリ・アドレス
-1とすると設定は行わずd1.lで指定したファンクション番号の
ファンクションのエントリ・アドレスのみを返す。
(d1.hw=1のとき)
d1.lw=0:CZ6BM1 #1のMIDI出力ルーチン
d1.lw=1:CZ6BM1 #2のMIDI出力ルーチン
d1.lw=2:RS232C MIDI #1のMIDI出力ルーチン
d1.lw=3:RS232C MIDI #2のMIDI出力ルーチン
a1.l:ユーザーファンクションのエントリ・アドレス
-1とすると設定は行わずd1.wで指定したMIDI出力ルーチンの
エントリ・アドレスのみを返す。
0とするとフックを解除する。
a2.l:通常はa2.l=a1.lとする。(備考参照)
戻り値 a0.l=フック前のファンクション/MIDI出力ルーチンのエントリ・アドレス
0ならば空いていた。
-1はエラー
備考 d1.hw=1のときのa1.lは割り込み対応MIDI出力ルーチンに対するフックで、
a2.lは$F7専用MIDI出力ルーチンに対するフックとなる。a1.lとa2.lを
別のアドレスにすればこれらを場合分けしたルーチンをユーザー側で
用意することも可能だが、通常はa1.l=a2.lとしておいて構わない。
なお、フック先のユーザールーチンへはd0.bに出力データを持って飛ぶ。
ユーザールーチン内でのレジスタ破壊は許されない。
--------------------------------------------------------------------------------
ファンクション$6c ZM_HOOK_ZMD_SERVICE
機能 ZMDオペレーションのフック
引数 d1.lw:ZMDコード-128(0-127)
d1.hw:(0:FM,1:ADPCM,2:MIDI,
-1:共通コマンド,-2:効果音用共通コマンド,
-3:制御コマンド)
a1.l:ユーザーZMDオペレーションのエントリ・アドレス
-1とすると設定は行わずd1.lで指定したZMDコードの
オペレーションのエントリ・アドレスのみを返す。
戻り値 a0.l=フック前のZMDオペレーション・エントリ・アドレス
0ならば空いていた。
-1はエラー
--------------------------------------------------------------------------------
ファンクション$6d ZM_OCCUPY_COMPILER
機能 コンパイラの占有
引数 d1.l:1=占有,0=占有解除,-1=占有状態検査
戻り値 d0.l=以前の占有状態(0=占有されていない,1=占有されている)
(d1.l=0,1のときのみ有効)
d0.l=現在の占有状態(0=占有されていない,1=占有されている)
(d1.l=-1のときのみ有効)
--------------------------------------------------------------------------------
ファンクション$6e ZM_STORE_ERROR
機能 エラーコードのストア
引数 d1.hw:エラーの発生したファンクション番号(0-32767)
d1.lw:エラーコード(0-65535)
d1.l=-1とした場合は問い合わせのみでストアは行わない
d2.l:エラーの合計個数値に幾つ加算するか
戻り値 d0.l=現在ストックしているエラーの個数
a0.l=エラーストックバッファのアドレス
備考 ・本関数はユーザーアプリケーション側で発生したエラーをZMUSIC側に
知らせたい場合に使用する。ただしその場合、エラーコードフォーマットは
MEASURE11で示してある形式に従わなければならない。
・エラーコードに関してはMEASURE11を参照。
--------------------------------------------------------------------------------
ファンクション$6f ZM_PRINT_ERROR
機能 エラーメッセージの表示
引数 d1.hw:メッセージの出力先(0:画面,1:バッファ)
d1.lw:メッセージの言語(0:英語,1:日本語)
d2.l:エラーの数
a1.l:ZMDのファイル名(無い場合は0)
a2.l:ソース(ZMS)のアドレス(無い場合は0)
a3.l:ソース(ZMS)ファイル名(無い場合は0)
a5.l:エラーストックバッファの先頭アドレス
戻り値 d0.l=出力バッファのサイズ。ただし終端の0は含まない。
a0.l=出力バッファの先頭アドレス
(d1.hw=1の時のみ有効,バッファの終端には0)
備考 エラーテーブルからエラーメッセージを得る場合などに使用する。
引数のa1.l~a3.lは通常の外部アプリケーションならば0でよい。
コンパイラなどの場合はそれらを正しく設定すればタグジャンプに
対応した出力を得ることが出来る。
--------------------------------------------------------------------------------
ファンクション$70 ZM_GET_MEM
機能 メモリの確保
引数 d2.l:確保サイズ
d3.l:確保するメモリの用途ID
戻り値 d0.l≦0:確保に失敗した
a0.l=確保したメモリブロックのアドレス(d0.l≧0のときのみ有効)
備考 ZMUSICに無関係のメモリブロックを確保する場合ならば当ファンクションを
用いる必要はない。
メモリの用途IDは以下のようなものがある。
自作プログラムから下記のメモリ用途IDを利用する場合は
ソースリストに含まれる ZMID.MAC をインクルードするとよい。
ZMUSICメモリID ID_ZMSC
ZPD ID_ZPD
ZPDテーブル ID_ZPD_TBL
ZMD ID_ZMD
波形メモリ ID_WAVE
波形メモリテーブル ID_WAVE_TBL
ADPCM単音登録用(NOT ZPD) ID_ADPCM
トータルステップタイム計算用ワークバッファ ID_CALC
テンポラリ領域 ID_TEMP
外部アプリケーション解除登録ワーク ID_APPLI
エラーストックバッファ ID_ERROR
スタートアップファイル ID_STARTUP
FM音源音色バッファ ID_FMSND
システム関連ワーク ID_SYSTEM
スタンダードMIDIファイル ID_SMF
全てを対象とする(FREE_MEM2時) ID_ALL
--------------------------------------------------------------------------------
ファンクション$71 ZM_ENLARGE_MEM
機能 メモリブロックのサイズの変更
引数 d2.l:変更後のサイズ
a1.l:ファンクションZM_GET_MEMで確保したメモリのアドレス
戻り値 d0.l≦0:確保に失敗した
a0.l=確保しなおしたメモリブロックのアドレス(d0.l≧0のときのみ有効)
備考 ・メモリブロックのサイズを大きくした場合などはメモリブロックの
再配置が自動で行われる。そのためa1.lで与えられたメモリブロックが
別のアドレスに移動する場合がある。よってこのファンクションを実行後は
a1.lのアドレス値を戻り値のa0.lのアドレス値に置き換えるべきである。
・変更に失敗した場合は、a1.lのメモリブロックの内容は保証される。
--------------------------------------------------------------------------------
ファンクション$72 ZM_FREE_MEM
機能 メモリブロックの解放
引数 a1.l:ファンクションZM_GET_MEMで確保したメモリのアドレス
戻り値 d0.l=0:解放成功
d0.l=0以外:エラーコード
--------------------------------------------------------------------------------
ファンクション$73 ZM_FREE_MEM2
機能 特定の用途IDを持ったメモリブロックの解放
引数 d3.l:メモリの用途ID(0は全削除指定となる)
戻り値 d0.l=0:解放成功
d0.l=0以外:エラーコード
備考 メモリの用途IDはファンクションZM_GET_MEMの項を参照のこと。
--------------------------------------------------------------------------------
ファンクション$74 ZM_EXCHANGE_MEMID
: equ $74 *メモリブロックのIDの変更
* cmd=$74
* < a1.l=mem.block address
* < d1.l=mode (0:no check) (1:check mode) (-1:exchange all who got d2 id.)
* < d2.l=old ID (Can be omitted in 'no check' case.)
* < d3.l=New ID ($8000_0000 means lock mem.)($0000_0000 means unlock mem.)
* > d0.l=return (0:no error, ne:error)
* - all except d0,a0
機能 メモリブロックの用途IDの変更
引数 d1.l:変更モード(0:チェックなしで変更,1:チェックしてから更新
-1:d2.lの用途IDを持つメモリブロックをすべて
d3.lの用途IDへ変更する)
d2.l:更新元メモリの用途ID(d1.l=0の場合は意味なし)
d3.l:希望メモリの用途ID
a1.l:ファンクションZM_GET_MEMで確保したメモリのアドレス
戻り値 d0.l=0:変更成功
d0.l=0以外:エラーコード
備考 メモリの用途IDはファンクションZM_GET_MEMの項を参照のこと。
--------------------------------------------------------------------------------
ファンクション$78 ZM_INIT_ALL
機能 ZMUSICの全初期化を行う
引数 なし
戻り値 d0.l=Z-MUSICのバージョンID
備考 通常のアプリケーションは本関数を利用する必要はない
バージョンIDはたとえばバージョン3.21ならば $00003241となる。
4の部分は固定値。
--------------------------------------------------------------------------------
ファンクション$79 ZM_INT_START
機能 割り込み開始制御
引数 d1.w:制御対象タイマータイプ
(-1:音楽タイマ,0:音楽+効果音タイマ,1:効果音タイマ)
戻り値 なし
備考 通常のアプリケーションは本関数を利用する必要はない
--------------------------------------------------------------------------------
ファンクション$7a ZM_INT_STOP
機能 割り込み停止制御
引数 d1.w:制御対象タイマータイプ
(-1:音楽タイマ,0:音楽+効果音タイマ,1:効果音タイマ)
戻り値 なし
備考 通常のアプリケーションは本関数を利用する必要はない
--------------------------------------------------------------------------------
ファンクション$7b ZM_SET_INT_SERVICE
機能 ユーザ割り込みサービスの設定
引数 ・ユーザ割り込み登録
d1.hw:全音符のクロック数(1-65535)
d1.lw:テンポ(1-32767)
a1.l:ユーザー割り込みルーチンのエントリアドレス
・登録したユーザ割り込みの割り込み速度(テンポ)を変更する
d1.hw:全音符のクロック数(1-65535)
d1.lw:テンポ(1-32767)
a1.l:-1
・ユーザ割り込み状態検査
d1.l:-1
a1.l:=0
・ユーザ割り込み解除
d1.l:0
a1.l:ユーザー割り込みルーチンのエントリアドレス
戻り値 ・ユーザ割り込み登録
d0.l=0:登録正常終了
d0.l=0以外:登録失敗
・登録したユーザ割り込みの割り込み速度(テンポ)を変更する
d0.l=0:変更正常終了
d0.l=0以外:変更失敗
・ユーザ割り込み状態検査
d0.l=a0.l=0:空き
d0.l=-1,a0.l=先約ユーザ割り込みエントリアドレス
・ユーザ割り込み解除
d0.l=0:解除正常終了
d0.l=0以外:解除失敗
備考 ・割り込みルーチンの最後はRTEではならない。かならず全レジスタを
保存した上でRTSで終了帰還するような作りにすること。
・引数のa1.l=-1とした場合はすでに登録されている割り込みサービスの
割込み周期をd1.lw,d1.hwのテンポ情報に変更する機能を果たす。
--------------------------------------------------------------------------------
ファンクション$7c ZM_CONTROL_TEMPO
機能 テンポ設定の主導権設定
引数 d1.l:-1=テンポ設定の主導権を外部アプリケーションに委託
0=テンポ設定の主導権をZMUSICに戻す
(このとき内部パラメタでテンポの初期化も実施する)
戻り値 d0.l=0:設定正常終了
d0.l=0以外:設定失敗
--------------------------------------------------------------------------------
ファンクション$7f ZM_EXEC_ZMD
機能 ZMD列の実行
引数 d1.l=トラック番号(0-65534,65535:特に指定しない場合)
d2.l=ZMD列の長さ
a1.l=ZMD列格納アドレス(バッファ自体はd2.l+8の大きさを必要とする)
戻り値 なし
--------------------------------------------------------------------------------